CCF認證2013年12月第1題-出現次數最多的數

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章