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

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

輸入 輸入集合大小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;
}
相關文章
相關標籤/搜索