標籤:

CCF 201312-1 出現次數最多的數||map的應用

CCF 201312-1 出現次數最多的數||map的應用

來自專欄如何快速高效學習C++?- 計算機軟體能力認證考試系統?

118.190.20.162

試題編號: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

//http://118.190.20.162/view.page?gpid=T5//得分:100#include <iostream>#include <map>#if(__cplusplus==201103L)#include <unordered_map>#else#include <tr1/unordered_map>namespace std{ using std::tr1::unordered_map;}#endifusing namespace std;#define um unordered_map#define test 0class solution{ map<int,int>m;public: solution(){//用map 按從小到大的順序保存輸入的數,並統計其出現的次數 int n=0; cin>>n; for(int i=0;i<n;i++){ int temp=0; cin>>temp; ++m[temp]; } } void solve(){ int res=0; int num=0; for(map<int,int>::iterator it=m.begin();it!=m.end();it++){#if test//用於檢查 cout<<it->first<< <<it->second<< <<res<<endl;#endif if(it->second>num){ num=it->second; res=it->first; } } cout<<res<<endl; }};int main(){ solution s; s.solve(); return 0;}

PS:

廣告時間啦~

理工狗不想被人文素養拖後腿?不妨關注微信公眾號:

歡迎掃碼關注~


推薦閱讀:

Langlands綱領一瞥
了不起的麥斯卡
什麼是演算法
Excel三招,算清投資複利
為什麼你在面對數學時會焦慮不安?

TAG:ccf | 數學 |