给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的 绝对值 至多为 k。
代码如下:
class Solution(object):
def containsNearbyDuplicate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: bool
"""
hash = {} #创建一个空的哈希表,其实就是字典感觉。。
for i in range(len(nums)):#遍历数组中所有元素
if nums[i] in hash and i - hash[nums[i]] <= k : #判断元素对应的下标是否在哈希表中,在就返回true,
return(True)
else:
hash[nums[i]] = i #不在就将数组的元素当作key值,下标当作value
return(False) #若都不在,返回false