题目描述
自己解法
设置一个字典,遍历数组,记录元素下标,若碰到重复元素,与字典中存储的下标比较,若满足条件返回:
class Solution:
def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:
num_pos = dict()
for i,val in enumerate(nums):
if val in num_pos:
if i - num_pos[val] <= k:
return True
else:
num_pos[val] = i
else:
num_pos[val] = i
return False
时间复杂度
O
(
n
)
O(n)
O(n),空间复杂度
O
(
n
)
O(n)
O(n)。