题解 | #超半的数#
超半的数
https://ac.nowcoder.com/acm/problem/22222
使用map容器存储
#include<iostream>
#include<map>
using namespace std;
int main()
{
int n=0,i=0;
cin>>n;
int k=0;
int m=n;
map<int,int> a;
map<int,int>::iterator it;
while(n-->0){
cin>>k;
it=a.find(k);
if(it!=a.end()){//说明有k值的
a[k]+=1;
}
else{//没有k,需要插入
a[k]=1;
}
}
int num=m/2;//前面对n进行了修改,不能用n进行操作,否则会全部输出,对后续判别产生影响
for(it=a.begin();it!=a.end();it++){
if(it->second>num)
cout<<it->first<<" ";
}
cout<<endl;
return 0;
}
//没有对时间复杂度和空间复杂度进行分析,仅采取不同方法进行解决