存在重复元素 II
暴力
function containsNearbyDuplicate(nums: number[], k: number): boolean {
for (let i = 0; i < nums.length; i++) {
let r = k
while (r) {
if (nums[i] === nums[i + r]) {
return true
}
r--
}
}
return false
}
哈希表
function containsNearbyDuplicate(nums: number[], k: number): boolean {
const s = new Set<number>()
for (let i = 0; i < nums.length; i++) {
if (s.has(nums[i])) return true
s.add(nums[i])
if (s.size > k) {
s.delete(nums[i - k])
}
}
return false
}