蒜頭君面試(map)

蒜頭君來蒜場面試的時候,曾經遇到這樣一個面試題:
給定n個整數,求裏面出現次數最多的數,如果有多個重複出現的數,求值最大的一個。當時可算是給蒜頭君難住了。現在蒜頭君來考考你。

輸入格式
第一行輸入一個整數n(1<=n<=100000),接下來一行輸入n各int範圍內的整數。

輸出格式
輸出出現次數最多的數和出現的次數,中間用一個空格隔開,如果有多個重複出現的數,輸入值最大的那個。

樣例輸入1
5
1 1 2 3 4
樣例輸出1
1 2

樣例輸入2
10
9 10 27 4 9 10 3 1 2 6
樣例輸出2
10 2
分析:可以直接用map來解決,因爲map帶有排序和不重複的特性

#include<iostream>
#include<map>
using namespace std;
map<int,int>s;
int main()
{
	int n,t,max=0,le=0;
	cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>t;
		s[t]++;
	} 
	map<int,int>::iterator it;
	for(it=s.begin();it!=s.end();it++)
	{
		if((it->second)>=max)
		{
		max=(it->second);
		le=(it->first);
     	}
	}
	cout<<le<<" "<<s[le]<<endl;
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章