```
public boolean containsNearbyDuplicate(int[] nums,int k){
Set<Integer> set=new HashSet<>();
int i=0,j=0;
while (j<nums.length){
if(!set.contains(nums[j])){
set.add(nums[j++]);
if (j-i>k){
set.remove(nums[i++]);
}
}else {
return true;
}
}
return false;
}
```