以下是一种解决方法,使用哈希表来存储元素及其索引:
def containsNearbyDuplicate(nums, k):
# 创建一个哈希表来存储元素及其索引
num_map = {}
for i in range(len(nums)):
# 如果当前元素已经在哈希表中,并且索引差小于等于k,则返回True
if nums[i] in num_map and i - num_map[nums[i]] <= k:
return True
# 更新元素的索引
num_map[nums[i]] = i
# 如果没有找到符合条件的元素,则返回False
return False
这个算法的思路是遍历数组,对于每个元素,检查它是否在哈希表中,并且索引差小于等于k。如果是,则返回True;如果不是,则更新元素的索引。如果遍历完整个数组都没有找到符合条件的元素,则返回False。
这个算法的时间复杂度是O(n),其中n是数组的长度。因为只需要遍历一次数组,每个元素最多在哈希表中进行一次插入和查找操作。空间复杂度是O(min(n, k)),因为哈希表中最多存储k个元素。
上一篇:包含重复项
下一篇:包含重复值的Excel索引函数