您的程序发生段错误

#include "bits/stdc++.h"
using namespace std;
int main(){
    int n,a[10]={0};
    int x;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        a[x]++;
    }
    if(a[x]>n/2){
        cout<<x;
    }
    return 0;

全部评论
用map
9 回复
分享
发布于 2020-12-20 17:07
不放心用unorderedmap
9 回复
分享
发布于 2020-12-20 17:07
联易融
校招火热招聘中
官网直投
不过最好是离散化一下
9 回复
分享
发布于 2020-12-20 17:07
程序的可读性更高
9 回复
分享
发布于 2020-12-20 17:07
通用性也更好
9 回复
分享
发布于 2020-12-20 17:08
希望对你有帮助
9 回复
分享
发布于 2020-12-20 17:08
😁😁😁
9 回复
分享
发布于 2020-12-20 17:08
orz
9 回复
分享
发布于 2020-12-20 17:11
🤣🤣🤣
9 回复
分享
发布于 2020-12-20 17:11
或者手写hash
8 回复
分享
发布于 2020-12-20 17:07
#include "bits/stdc++.h" using namespace std; map<int,int> a;  int main(){     int n;     int x;     cin>>n;     for(int i=0;i<n;i++){         cin>>x;         a[x]++;         if(a[x]*2>n){             cout<<x;return 0;         }     }          return 0; }
1 回复
分享
发布于 2020-11-25 20:32
x 的范围是 10^9 不是 9 ,直接使用数组,下标不接受这么大的。可以考虑离散化,或者 map 之类的。而且循环嵌套的位置不太对。加油!(ง •_•)ง
点赞 回复
分享
发布于 2020-11-25 20:32

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务