C++9018:1615——眾數


好久沒更新了……

題目來自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1615

題目描述

N 個 1 到 30000 間無序數正整數,其中 1≤N≤10000, 同一個正整數可能會出現多次,出現次數最多的整數稱為眾數。 求出它的眾數及它出現的次數。

輸入

輸入文件第一行是正整數的個數 N,第二行開始為 N 個正整數。

輸出

輸出文件有若干行,每行兩個數,第 1 個是眾數,第 2 個是眾數出現的次數。兩個數之間是兩個空格。

多個眾數的時候,按眾數從小到大分行輸出。

樣例輸入

12
2 4 2 3 2 5 3 7 2 3 4 3

樣例輸出

2  4
3  4

提示

 

最后一行后面有回車

作者分析:這道題目要排序並且統計數字個數,因此我們使用桶排序。

#include <iostream>
#include <cstring>
using namespace std;

int main(){
    int n,k,max = -1;
    cin >> n;
    int a[30001];                  // 桶
    memset(a,0,sizeof(a));
    for (int i = 1;i <= n;i++){
        cin >> k;
        a[k]++;
        if (a[k] > max){
            max = a[k];              // 最大的數
        }
    }
    for (int i = 0;i <= 30001;i++){
        if (a[i] == max){
            cout << i << "  " << a[i] << endl;// 輸出
        }
    }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM