#include <bits/stdc++.h>
using namespace std;
struct l
{
int data;
int sum; // 记录次数
}has[100010];
int main()
{
int a,b,i,m;
cin>>a;
b=100000;
memset(has,0,sizeof(has));
for(i=1;i<=a;i++)
{
cin>>m;
if(has[m%b].data==0||has[m%b].data==m)
{
has[m%b].data=m;
has[m%b].sum++;
}
else
{
int k=m%b;
while(has[k].data!=0)
{
if(k==b-1)
{
k=0;
}
else
{
k++;
}
if(has[k].data==m)
{
break;
}
}
has[k].data=m;
has[k].sum++;
}
}
int max,key=-1;
max=has[0].sum;
for(i=1;i<100000;i++)
{
if(max<has[i].sum)
{
max=has[i].sum;
}
}
for(i=0;i<100000;i++)
{
if(has[i].sum==max&&key==-1)
{
key=has[i].data;
}
else if(has[i].sum==max&&key!=-1)
{
if(key>has[i].data)
{
key=has[i].data;
}
}
}
cout<<key<<" "<<max;
return 0;
}
数据结构实验:哈希表
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.