Task 01 存在重复元素
题目描述:输入整数数组nums和整数k,如果数组内存在两个相等的值,并且abs(i - j)<= k,如果存在返回true,否则返回false。
解题思路:一开始用暴力解法,提交后一直超时。后来用滑动窗口法,以不超过k+1的窗口滑动。
s = set() #
for i, num in enumerate(nums):
if i > k:
s.remove(nums[i - k - 1]) # 当 i > k,将 i -k-1处的元素移出哈希集合
if num in s: # 判断nums[ i ]是否在哈希集合中,如果存在则返回True
return True
s.add(num)
return False