Remember the last position of each number. If find any number distinct indices difference <= k, that the answer.
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
seen = {}
for i, n in enumerate(nums):
if n in seen and i - seen[n] <= k:
return True
# update last position of 'n'
# assume next 'n' position is j,
# j - the 'previous' seen[n] must larger than k
# e.g. previous seen[n] .... seen[n] .... j
seen[n] = i
return False
No comments:
Post a Comment