算法
(贪心) $O(n)$
对于两个相同的数 $a$,若它们之间的距离大于 $M$,则存在长度为 $M$ 的区间中没有 $a$,那么 $a$ 可以作为答案。
C++ 代码
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using std::cin;
using std::cout;
using std::min;
using std::vector;
int main() {
int n, m;
cin >> n >> m;
vector<int> pre(n, -1);
int ans = n;
rep(i, n) {
int a;
cin >> a;
if (i - pre[a] > m) ans = min(ans, a);
pre[a] = i;
}
rep(i, n) if (n - pre[i] > m) ans = min(ans, i);
cout << ans << '\n';
return 0;
}