CCF-CSP 201312-1出现次数最多的数 满分题解
题目链接:201312-1出现次数最多的数
思路:
- 采用
pair
存储数据,first
存储出现的次数,second
存储值 - 手写排序算法,即先按照次数从大到小排序,再按照值从小到大排序
- 输出第一个元素
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 1e4+10;
typedef pair<int, int> PII;
int n;
PII a[N];
bool cmp(PII a,PII b)
{
if(a.first==b.first)
return a.second<b.second;
else return a.first>b.first;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
a[x].first++;
a[x].second = x;
}
sort(a,a+N,cmp);//注意此处为N
cout<<a[0].second<<endl;
}