存在重复元素 II
题目:
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。
我的思路是:
利用python字典。
转换成字典,值等于两个索引的差值,如果不满足条件,值重置为第二个位置的索引。
代码如下:
class Solution:
def containsNearbyDuplicate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: bool
"""
a = {}
i = 0
while i <len(nums):
if nums[i] not in a:
a[nums[i]] = nums.index(nums[i],i)
else:
a[nums[i]] -= nums.index(nums[i],i)
if abs(a[nums[i]]) <= k: # 最大为k
i = len(nums)+1
else:
a[nums[i]] = nums.index(nums[i],i)
i += 1
if i == len(nums)+2:
return True
else:
return False