img

简单的滑动窗口+哈希表,代码写的比较丑

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
k += 1
table = set()
f = False
g = min(k, len(nums))
for i in range(g):
if nums[i] in table:
f = True
break
table.add(nums[i])
if f:
return True
for i in range(g, len(nums)):
table.remove(nums[i - k])
if nums[i] in table:
f = True
break
table.add(nums[i])
return f