CCF認證2013年12月第1題
試題編號: 201312-1
試題名稱: 出現次數最多的數
時間限制: 1.0s
內存限制: 256.0MB
問題描述:
問題描述
給定n個正整數,找出它們中出現次數最多的數。如果這樣的數有多個,請輸出其中最小的一個。
輸入格式
輸入的第一行只有一個正整數n(1 ≤ n ≤ 1000),表示數字的個數。
輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相鄰的數用空格分隔。
輸出格式
輸出這n個次數中出現次數最多的數。如果這樣的數有多個,輸出其中最小的一個。
樣例輸入
6
10 1 10 20 30 20
樣例輸出
10
//利用桶排序思想
#include<iostream>
using namespace std;
int main()
{
int a[10001]={0}; //數據範圍是1~10000,開闢數組賦初值爲0
int n,t;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>t;
a[t]++; //對相同數據進行計數
}
int flag=-1,max=-1;
for(int i=1;i<=10000;i++) //從小到大遍歷,已經自動排序
{
if(a[i]>max)
{
max=a[i]; //max中存儲數組下標對應數值的個數
flag=i; //flag存儲數組下標,也就是個數最多的數值
//始終是個數相同時,數值最小的值
}
}
cout<<flag;
return 0;
}