网站怎么不花钱做排名 知乎,宣城高端网站建设,做曖免费网站,seo诊断报告LeetCode 219. 存在重复元素 II 给你一个整数数组 nums 和一个整数 k #xff0c;判断数组中是否存在两个 不同的索引 i 和 j #xff0c;满足 nums[i] nums[j] 且 abs(i - j) k 。如果存在#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。 示例 1判断数组中是否存在两个 不同的索引 i 和 j 满足 nums[i] nums[j] 且 abs(i - j) k 。如果存在返回 true 否则返回 false 。 示例 1 输入nums [1,2,3,1], k 3 输出true 示例 2 输入nums [1,0,1,1], k 1 输出true 示例 3 输入nums [1,2,3,1,2,3], k 2 输出false 提示 1 nums.length 105 -109 nums[i] 109 0 k 105 哈希表
先构造哈希表然后分析满足条件的值
class Solution:def containsNearbyDuplicate(self, nums: List[int], k: int) - bool:d defaultdict(list)for idx, num in enumerate(nums):d[num].append(idx)for num in d:if len(d[num]) 2:continuefor i in range(len(d[num]) - 1):if (d[num][i 1] - d[num][i]) k:return Truereturn False借助哈希表渐进求值666
class Solution:def containsNearbyDuplicate(self, nums: List[int], k: int) - bool:pos {}for i, num in enumerate(nums):if num in pos and i - pos[num] k:return Truepos[num] ireturn False# 作者力扣官方题解
# 链接https://leetcode.cn/problems/contains-duplicate-ii/solutions/1218075/cun-zai-zhong-fu-yuan-su-ii-by-leetcode-kluvk/
# 来源力扣LeetCode
# 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。