$边存边遍历$
$刚开始我陷入了误区,一直默认是当有多个满足条件的数,选最先出现的数!其实这错了,应该是最小的数!$
#include<iostream>
using namespace std;
const int n = 10010;
int nums[n];
int main() {
int len, cur;
int cnt = 0, res = 0;
cin>>len;
for (int i = 0; i < len; i++) {
cin>>cur;
if(++nums[cur] > nums[res])
res = cur;
else if(nums[cur] == nums[res]) // 有多个满足条件的数,更新为更小的数
res = min(res, cur);
}
cout<<res;
return 0;
}
$先存再遍历$
#include<iostream>
using namespace std;
const int n = 10010;
int nums[n];
int main() {
int len, cur;
int res = 0;
cin>>len;
while (len--) {
cin >> cur;
nums[cur]++;
}
for(int i = 1; i < n; i++) {
if(nums[i] > nums[res])
res = i;
}
cout<<res;
return 0;
}