-->
当前位置:首页 > 题库 > 正文内容

编程题:h0048. 算次数

Luz3年前 (2022-02-15)题库734
小明想知道在他笔记本上写的 n 个整数中出现次数最多的数是多少,如果有多个数出现次数并列最多,他想知道数最小的那个。

### 输入格式:

第一行,一个正整数 n,1≤n≤10^5

第二行,n 整数 ai(−10^6≤ai≤10^6),表示小明的笔记本上的整数

### 输出格式:

输出一行,包含一个整数,表示答案。

### 输入样例:

in
3
-1 -1 2


### 输出样例:

out
-1







答案:若无答案欢迎评论

因为有负数存在,可以把每个数统计在下标比这个数大的位置,最后找到数组最大数的下标后再减去就是答案了。

#include <iostream>
using namespace std;
int cnt[2000005];
int main() {
int n, x, ans;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x;
cnt[x + 1000000]++;
}
ans = 0;
for (int i = 0; i <= 2000000; i++) {
if (cnt[i] > cnt[ans]) {
ans = i;
}
}
cout << ans - 1000000 << endl;
return 0;
}

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。