思路:下标差最多为k -> 维护一个长为k + 1的固定窗口
class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_set<int> hash;
int n = nums.size();
for (int r = 0; r < n; ++r) {
if (r >= k + 1) hash.erase(nums[r - k]);
if (hash.count(nums[r])) return true;
hash.insert(nums[r]);
}
return false;
}
};