C++ CCF 出現次數最多的數
阿新 • • 發佈:2019-01-08
問題描述
給定n個正整數,找出它們中出現次數最多的數。如果這樣的數有多個,請輸出其中最小的一個。
輸入格式
輸入的第一行只有一個正整數n(1 ≤ n ≤ 1000),表示數字的個數。
輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相鄰的數用空格分隔。 輸出格式 輸出這n個次數中出現次數最多的數。如果這樣的數有多個,輸出其中最小的一個。 樣例輸入 6
10 1 10 20 30 20 樣例輸出
輸入的第二行有n個整數s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相鄰的數用空格分隔。 輸出格式 輸出這n個次數中出現次數最多的數。如果這樣的數有多個,輸出其中最小的一個。 樣例輸入 6
10 1 10 20 30 20 樣例輸出
10
#include<iostream>
#include<map>
using namespace std;
int main(){
int n;
cin>>n;
map<int,int> f;
for(int i=0;i<n;i++)
{
int t;
cin>>t;
f[t]++;
}
int ans,m=0;
for(map<int,int>::iterator it=f.begin();it!=f.end();it++)
{
if(it->second>m)
{
m=it->second;
ans=it->first;
}
}
cout<<ans<<endl;
return 0;
}
map有個好處 按照key值的大小 預設從小到大進行排序