天天看點

出現次數最多的整數

問題描述

  編寫一個程式,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由使用者輸入的,最多不會超過20。然後程式将對這個數組進行統計,把出現次數最多的那個數組元素值列印出來。如果有兩個元素值出現的次數相同,即并列第一,那麼隻列印比較小的那個值。

  輸入格式:第一行是一個整數N,N £ 20;接下來有N行,每一行表示一個整數,并且按照從小到大的順序排列。

  輸出格式:輸出隻有一行,即出現次數最多的那個元素值。

輸入輸出樣例

樣例輸入

5

100

150

200

250

樣例輸出

使用map,每次輸入的時候,對應key值的value+1就ok了

仔細看題,注意資料的範圍

#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

#include <map>

int main() {

    int n;
    cin>>n;
    if(n<=0){這裡必須判斷,因為題目中n的範圍
        return 0;
    }
    map<int, int> m;
    int temp;
    int ret=0;
    int max=0;
    for (int i = 0; i < n; i++)
    {
        cin>>temp;
        m[temp]++;
        if(m[temp]>max){
            max=m[temp];
            ret=temp;
        }
    }
    cout<<ret;
        return 0;
}      

繼續閱讀