寻找出现最多次数的数,可以通过hash来表示各个数出现的个数,为了方便找到出现最大次数的数,可采用set从而避免遍历hash时不必要的时间浪费。
AC代码:
#include<iostream>
#include<vector>
#include<map>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#include<list>
#include<set>
#include<stack>
#include<cmath>
#define inf 26*26*26*10+5
using namespace std;
int a[1000][1000];
int hashh[100000000];
set<int> s;
int main()
{
int n,m;
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
s.insert(a[i][j]);
hashh[a[i][j]]++;
}
}
set<int>::iterator it;
int maxx=0;
int biaoji;
for(it=s.begin();it!=s.end();it++)
{
if(hashh[*it]>maxx)
{
maxx=hashh[*it];
biaoji=*it;
}
}
printf("%d",biaoji);
}