算法設計與分析C++衆數與重數 非分治實現

總時間限制: 1000ms 內存限制: 1000kB
描述
給定含有n個元素的多重集合S,每個元素在S中出現的次數稱爲該元素的重數。多重集S中重數最大的元素稱爲衆數。例如,S={1,2,2,2,3,5}。多重集S的衆數是2,其重數爲3。對於給定的n個自然數組成的多重集S,計算S的衆數及其重數 。

輸入
輸入集合大小n及n個數
輸出
輸出兩行
第一行爲衆數
第二行爲重數
樣例輸入
6
1 2 2 2 3 5
樣例輸出
2
3

#include<iostream>
using namespace std;
int main() 
{
    int i,j,n,same,max=-1;
    
    //輸入
    int a[5000],b[5000];
    cin>>n;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    
        
    for(i=0;i<n;i++){
        b[i]=0;
    }


    //記錄個數
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
            if(a[i]==a[j])
                b[i]++;
        }    
    }
    
    for(i=0;i<n;i++)
    {
        if(b[i]>max){
            max=b[i];
            same=a[i];
        }
            
        if(b[i]==max)
        {
            if(a[i]<a[max]){
                max=b[i];
                same=a[i];
            }        
        } 
    }
    cout<<same<<" "<<max;
    
    return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章