题解 | #超半的数#

超半的数

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

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

相关推荐

头像
不愿透露姓名的神秘牛友
04-08 20:03
已编辑
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务