1. 程式人生 > >CCF-2013-12-1 出現次數最多的數

CCF-2013-12-1 出現次數最多的數

問題描述

  給定n個正整數,找出它們中出現次數最多的數。如果這樣的數有多個,請輸出其中最小的一個。

輸入格式

  輸入的第一行只有一個正整數n(1 ≤ n ≤ 1000),表示數字的個數。
  輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相鄰的數用空格分隔。

輸出格式

  輸出這n個次數中出現次數最多的數。如果這樣的數有多個,輸出其中最小的一個。

樣例輸入

6
10 1 10 20 30 20

樣例輸出

10

這個主要可以練習下map怎麼使用。或者暴力點也行,第一題問題不大。

100程式碼

#include<iostream>
#include<map>
using namespace std;
int  main()
{
	map<int ,int >name;
	int n;
	int max=0;
	int count=0;
	cin>>n;
	while(n--){
		int x;
		cin>>x;
	name.insert(pair<int ,int >(x,0));
	name[x]++;
	if(count<name[x]) {
		count=name[x];
		max=x;
	}
	else if(count==name[x])
		max=max>x?x:max;
	
	}
	cout<<max;
	
}