眾數問題 set

2021-08-31 13:32:24 字數 1082 閱讀 7143

描述

所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,

多重集合s重的重數最大的元素成為眾數。例如:s=,則多重集s的眾數是2,其重數為3。

現在你的任務是:對於給定的由m個自然數組成的多重集s,計算出s的眾數及其重數。

題目大意:找到並輸出 每組樣例中 出現次數最多的元素以及該元素出現的次數

解題思路:

1.利用 multiset  ,因為其不僅可以自動排序 而且插入的值可以重複;

2.利用multiset  中的count(val) 函式,該函式可以在容器中搜尋等效於val的元素並返回匹配數。 即統計該元素出現的次數。

執行**:

#include#include#includeusing namespace std;

int main()

{ multisetms; //定義乙個插入的值可以重複的集合

int n,m,value;

scanf("%d",&n); //輸入示例個數

while(n--)

{scanf("%d",&m); //輸入該樣例的元素個數

for(int i=0;i::iterator it; //定義迭代器

int max =0,num; //max 為重數 num為個數

for(it=ms.begin();it!=ms.end();it++)//遍歷集合

{ if(max示例:

樣例輸入

1

61 2 2 2 3 5

樣例輸出

2 3
執行結果:

演算法 眾數問題

眾數問題 description 給定含有n個元素的多重集合s,每個元素在s中出現的次數稱為該元素的重數。多重 集s中重數最大的元素稱為眾數。例如,s 多重集s的眾數是2,其重數為3。程式設計任務 對於給定的由n 個自然數組成的多重集s,程式設計計算s 的眾數及其重數。input 輸入資料第1行多重...

眾數問題分析

問題描述 給定乙個陣列,找出其中出現次數最多的那個元素 即眾數 核心思想 普遍的解決思路。如果我們將所有元素的出現次數進行統計,並從中找出次數中的最大值,那麼,這個最大值對應的元素就是眾數。從這一思想出發,我總結出以下兩種演算法 演算法1 利用排序演算法統計 演算法2 利用陣列或雜湊表統計 演算法1...

95 眾數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 所謂眾數,就是對於給定的含有n個元素的多重集合,每個元素在s中出現次數最多的成為該元素的重數,多重集合s重的重數最大的元素成為眾數。例如 s 則多重集s的眾數是2,其重數為3。現在你的任務是 對於給定的由m個自然數組成的多重集s...