- 【基础】统计每个数出现的次数
神秘题目
- @ 2025-12-6 20:10:03
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, x, d = 2e9, a = -1;
map<int, int> m;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x;
if (m[x] && i - m[x] < d) {
d = i - m[x];
a = x;
}
m[x] = i;
}
if (a == -1) cout << "No";
else cout << a;
return 0;
}
2 条评论
-
wangxiaoyu @ 2025-12-6 20:13:12你给我看看第三题
-
@ 2025-12-6 20:12:08int n, x, d = INT_MAX, a = -1; // n:数组长度,x:当前输入的数,d:最小距离,a:答案 map<int, int> m; cin >> n; // 输入数组长度 for (int i = 1; i <= n; i++) { // 循环读取每个数 cin >> x; // 输入当前数 if (m[x] && i - m[x] < d) { // 如果之前出现过且距离更小 d = i - m[x]; // 更新最小距离 a = x; // 更新答案 } m[x] = i; // 更新这个数最后一次出现的位置 } if (a == -1) cout << "No"; else cout << a;
- 1
信息
- ID
- 150
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 125
- 已通过
- 43
- 上传者