代码仓库:Github | Leetcode solutions @doubleZ0108 from Peking University.
- 解法1(T78% S60%): 还是通过哈希表,value保存下标,如果满足绝对距离小于k则返回,否则更新key的value下标。 为什么可以不用数组保存所有下标呢?因为如果之前的绝对距离太大不满足条件,可以放心大胆的舍弃换成最近的
class Solution(object):
def containsNearbyDuplicate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: bool
"""
table = {}
for i in range(len(nums)):
if nums[i] not in table: table[nums[i]] = i
else:
if abs(i-table[nums[i]]) <= k: return True
else: table[nums[i]] = i
return False
该博客介绍了如何利用哈希表解决LeetCode中的一个编程问题,即判断数组中是否存在两个元素的绝对距离小于特定值k。代码实现中,通过创建一个哈希表存储元素及其索引,当遇到重复元素时检查其与当前索引的绝对距离,如果小于k则返回true,否则更新哈希表。这种方法避免了保存所有下标的数组,提高了效率。
163

被折叠的 条评论
为什么被折叠?



