存在重复元素 II
给你一个整数数组
nums
和一个整数k
,判断数组中是否存在两个 不同的索引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 <= 10^5
-10^9 <= nums[i] <= 10^9
0 <= k <= 10^5
哈希表
我这里用的是对象
TypeScript
function containsNearbyDuplicate(nums: number[], k: number): boolean {
let obj = {}
for (let i = 0; i < nums.length; i++) {
const item = nums[i];
if (item in obj && Math.abs(i - obj[item]) <= k) {
return true;
}
obj[item] = i
}
return false
};