题解 | #超半的数#

超半的数

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;
    
}

//没有对时间复杂度和空间复杂度进行分析,仅采取不同方法进行解决
全部评论

相关推荐

哞客37422655...:你猜为什么福利这么好还得一直追着你问
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务