leetcode 219 滑动窗口 python
时间: 2024-04-13 19:24:03 浏览: 283
leetcode 219题是关于滑动窗口的问题。题目要求给定一个整数数组nums和一个整数k,判断数组中是否存在两个不同的索引i和j,使得nums[i] == nums[j],并且i和j的差的绝对值最大为k。
下面是一种使用滑动窗口的解法(Python代码):
```python
def containsNearbyDuplicate(nums, k):
num_set = set()
for i in range(len(nums)):
if nums[i] in num_set:
return True
num_set.add(nums[i])
if len(num_set) > k:
num_set.remove(nums[i-k])
return False
```
这个解法使用了一个集合`num_set`来存储滑动窗口中的元素。遍历数组`nums`,对于每个元素,如果它已经在集合中存在,则说明找到了满足条件的两个索引,返回True;否则,将该元素加入集合中,并判断集合的大小是否超过了k,如果超过了,则移除滑动窗口最左边的元素。
阅读全文
相关推荐


















