给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使 nums [i] = nums [j],并且 i 和 j 的绝对差值最大为 k。
"""
分析:考察哈希
初始化字典保存数组值和下标,遍历数组,若数组值存在在字典中,判断是差值小于k,否则将数据添加到字典中保存。
时间复杂度O(n)
"""
class Solution:
def containsNearbyDuplicate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: bool
"""
map = {}
for i,v in enumerate(nums):
if v in map.keys() and i-map[v]<=k:
return True
else:
map[v]=i
return False