题目描述
清华保研考试题 众数 (acwing 1328)
大意就是求n个数中 出现的次数最多的数中最大那个数
C++ 代码
用哈希map统计输出
#include<iostream>
#include<map>
using namespace std;
int x;
map<int, int> table;
int main(void){
int n;
cin>>n;
for(int i=0; i<n; i++){
cin>>x;
table[x]++;
}
int mx = 0;
int res = -1;
for(auto it=table.rbegin(); it!=table.rend(); it++){
if((*it).second>mx){
mx = (*it).second;
res= (*it).first;
}
}
cout<<res<<endl;
}
为什么要用$rbegin$,$begin$为啥不行
出现的次数最多的数中,“最大”那个数,set会从小到大排序,所以需要reverse,用rbegin
讲的太好了,真棒!