题目:桐桐做完了数学作业之后,在练习本上写了N个正整数,她希望知道她随手写出来的数字哪一个出现得最多,你能想出什么办法帮助她吗?
输入格式
第一行只有一个数:N(1≤N≤500000);
第二行有N个正整数,相邻数用空格隔开,所有数均不超过10000。
输出格式
出现次数最多的那个数,如果有相同次数的,则输出数值较小的那个数。
输入/输出例子
输入:
5
13 12 14 13 12
输出:
12
解法:用一维数组下标来运算。
代码:
#include<bits/stdc++.h>//c++万能头
using namespace std;
int t[100005];
int main(){
int n;
cin>>n;
int M=0;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x>M)//取其中的最大值
M=x;
t[x]++;
}
int Max=0,Maxid=0;
for(int j=1;j<=M;j++)
{
if(t[j]>Max){//取最大值和ID
Max=t[j];
Maxid=j;
}
}
cout<<Maxid;//输出
return 0;
}