7-90 點贊 (20分)

在這裏插入圖片描述

代碼一(部分錯誤)

思路:arr來存該數字的出現個數,max_element求最大個數,當等於最大個數的時候放到arrmax數組裏,從大到小排序,輸出第一個。
或者直接從最大開始往下遍歷,更簡單
在這裏插入圖片描述

#include <bits/stdc++.h>
using namespace std;

bool cmp(int a,int b){
	return a>b;
}
int main()
{
	int arr[1000]={0};
	int index,cnt=0;
    int N,n;cin>>N;
	for(int i=0;i<N;i++){
		cin>>n;
		for(int j=0;j<n;j++){
			cin>>index;	
			arr[index]++;
		}
	} 
	///////////////
	int mmax=*max_element(arr,arr+1000);
	int arrmax[1000];
	int flag=0;
	
	for(int i=0;i<1000;i++){
		if(mmax==arr[i]){
			arrmax[flag]=i;
			flag++;
		}
	}
	sort(arrmax,arrmax+flag,cmp);
	cout<<arrmax[0]<<" "<<arr[arrmax[0]];
    return 0;
    /*
	int mmax=*max_element(arr,arr+1000);
	
	for(int i=1000;i>0;i--){
		if(mmax==arr[i]){
			cout<<i<<" "<<mmax;
			break;
		}
	}
    return 0;
	*/
}

代碼二(正確)

學長說==“a數組在大點試試”== ,我試了一下,int arr[1000]={0}; 變成 int arr[1001]={0}; 對了!!好神奇
arr[1000]是從0到999下標 ,不包括1000,N(<=1000)

#include <bits/stdc++.h>
using namespace std;

bool cmp(int a,int b){
	return a>b;
}
 
int main()
{
	int arr[1001]={0};
	int index,cnt=0;
    int N,n;cin>>N;
	for(int i=0;i<N;i++){
		cin>>n;
		for(int j=0;j<n;j++){
			cin>>index;	
			arr[index]++;
		}
	} 
	
	int mmax=*max_element(arr,arr+1000);
	
	for(int i=1000;i>0;i--){
		if(mmax==arr[i]){
			cout<<i<<" "<<mmax;
			break;
		}
	}
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章