leetcode-219-存在重复元素②
Posted oldby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-219-存在重复元素②相关的知识,希望对你有一定的参考价值。
题目描述:
第一次提交:超时
class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: for i in range(len(nums)-1): for j in range(i+1,min(i+k+1,len(nums))): if nums[i] == nums[j]:return True return False
第二次提交:超时
class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: if k>=len(nums): if len(set(nums))!=len(nums): return True else: for i in range(len(nums)-k): if len(set(nums[i:i+k+1]))!=len(nums[i:i+k+1]):return True return False
优化:哈希表维护滑动窗口:O(N)
class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool: windows = set() for i in range(len(nums)): if nums[i] in windows: return True windows.add(nums[i]) if len(windows) > k: windows.remove(nums[i-k]) return False
以上是关于leetcode-219-存在重复元素②的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 219: 存在重复元素 IIContains Duplicate II
LeetCode-219. 存在重复元素 II.(java)
LeetCode-219. 存在重复元素 II.(java)
leetcode-219-Contains Duplicate II(使用set来判断长度为k+1的闭区间中有没有重复元素)