原代码
报错了,之后再改,先放着
#include<bits/stdc++.h>
using namespace std;
int main()
{
int N,K,F;
map<int,int>m;
cin>>N;
for(int i=0;i<N;i++){
cin>>K;
for(int j=0;j<K;j++){
cin>>F;
if(m[F]==0){
m[F]=1;
}else{
m[F]++;
}
}
}
//初始化最大值为第一个键值对
auto maxPair = *m.begin();
// 遍历整个 map 容器
for (const auto& pair : m) {
// 如果当前键值对的值比最大值大,则更新最大值
if (pair.second > maxPair.second) {
maxPair = pair;
}
}
cout<<maxPair.first<<" "<<maxPair.second;
return 0;
}
柳神代码
柳神注解:使用arr[1001]存储每个性格标签出现的次数,遍历arr数组,找到出现次数最多的保存为maxValue,并保存其下标为maxIndex~
maxIndex就是出现次数最多的特性标签,maxValue就是该特性标签出现的次数~
#include <cstdio>
using namespace std;
int main() {
int n, k, num, maxIndex = 0, maxValue = 0;
scanf("%d", &n);
int arr[1001] = {0};
for (int i = 0; i < n; i++) {
scanf("%d", &k);
for (int j = 0; j < k; j++) {
scanf("%d", &num);
arr[num]++;
}
}
for (int i = 0; i < 1001; i++) {
if (arr[i] >= maxValue) {
maxValue = arr[i];
maxIndex = i;
}
}
printf("%d %d", maxIndex, maxValue);
return 0;
}
非常简单实用的代码,根本不用别的花里胡哨的那些。