该题使用map记录奶牛位置即可
map的key值为奶牛id,value值为奶牛的位置,在输入一只奶牛后判断是否有key值为该奶牛的map,若有则判断二者间距是否少于k即可
C++ 代码
#include<iostream>
#include<queue>
#include<map>
#include<algorithm>
using namespace std;
//map记录上一头奶牛出现在队列中的位置,k为奶牛ID,v为上一头奶牛出现的位置
map<int, int> cow;
int main() {
int N, K;
int id;
int ans = -1;
cin >> N >> K;
for (int i = 1; i <= N; i++) { //i为该id奶牛的位置
cin >> id;
if (i - cow[id] <= K && cow[id]!=0)
ans = max(ans, id);
cow[id] = i;
}
cout << ans;
}
```