AcWing 3192. 出现次数最多的数:hash表加优先队列
原题链接
简单
作者:
@月@
,
2021-05-21 11:37:22
,
所有人可见
,
阅读 187
#include <iostream>
#include <queue>
#include <map>
using namespace std;
struct temp
{
int val,num;//val是值,num是次数
bool operator <(const struct temp& a) const{//小于号重载
if(a.num==num)
return val>a.val;
else
return num<a.num;
}
};
priority_queue<struct temp>q;//优先队列
map<int,int>mp;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
int x;cin>>x;
mp[x]++;//hash表
q.push({x,mp[x]});//进队
}
cout<<q.top().val;//输出第一个元素
return 0;
}