找出序列中出现最多的数字。
数字的数量不算多,快排,再从小到大扫一遍,AC。
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
int n,a[100100];
int ans,num,ak,nk;
int main()
{
while (scanf("%d",&n) != EOF)
{
memset(a,0,sizeof(a));
ans = 0;
num = 0;
for (int i = 1 ; i <= n ; i ++)
{
scanf("%d",&a[i]);
}
sort(a+1,a+1+n);
num = 0;
ak = a[1];
nk = 1;
for (int i = 2 ; i <= n ; i++)
{
if (a[i] == a[i-1]) nk++;
else {
if (nk > num) {
num = nk;
ans = ak;
}
ak = a[i];
nk = 1;
}
}
if (nk > num) {
num = nk;
ans = ak;
}
printf("%d\n",ans);
}
}