We use a hash map to store the index of each number. Every time we encounter a number that is already in the map, we check if the difference between current index and stored index is <= k.
- Initialize
seen = {}. - For
i, numinenumerate(nums):- If
numinseenandi - seen[num] <= k:- Return True.
seen[num] = i.
- If
- Return False.
- Time Complexity: O(N).
- Space Complexity: O(N).
def contains_nearby_duplicate(nums, k):
seen = {}
for i, n in enumerate(nums):
if n in seen and i - seen[n] <= k:
return True
seen[n] = i
return False