LeetCode 219 - 存在重复元素 II
题目描述
给你一个整数数组 nums 和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,满足:
- nums[i] == nums[j]
- abs(i - j) <= k
解题思路
1. 滑动窗口 + 集合
使用大小为 k 的滑动窗口和集合来解决:
- 维护一个最大长度为 k 的集合
- 遍历数组,对于每个元素:
- 如果当前元素在集合中已存在,返回 true
- 将当前元素加入集合
- 如果集合大小超过 k,移除最早加入的元素
2. 代码实现
1 | def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Never Settle!
评论