镇海区建设工程安监站网站,上海近期大型招聘会,古风模板网,模板手机网站建设题目 给你一个整数数组 nums 和一个整数 k #xff0c;判断数组中是否存在两个 不同的索引 i 和 j #xff0c;满足 nums[i] nums[j] 且 abs(i - j) k 。如果存在#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。 解题 时间复杂度…题目 给你一个整数数组 nums 和一个整数 k 判断数组中是否存在两个 不同的索引 i 和 j 满足 nums[i] nums[j] 且 abs(i - j) k 。如果存在返回 true 否则返回 false 。 解题 时间复杂度为 O(n)空间复杂度为 O(min(n, k))其中 n 是数组的长度
def containsNearbyDuplicate(nums, k):# 创建一个哈希表来存储元素及其对应的索引num_dict {}# 遍历数组中的每个元素for i, num in enumerate(nums):# 如果当前元素已经存在于哈希表中且满足 abs(i - j) kif num in num_dict and abs(i - num_dict[num]) k:return True# 更新哈希表存储当前元素及其索引num_dict[num] i# 如果没有找到满足条件的元素返回 Falsereturn Falsenums [1, 2, 3, 1]
k 3
print(containsNearbyDuplicate(nums, k)) # 输出: True