Appearance
219. 存在重复元素 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 <= 105 -109 <=
nums[i]<= 109 - 0 <= k <= 105
难度: Easy
题解代码
javascript
/**
* @param {number[]} nums
* @param {number} k
* @return {boolean}
*/
var containsNearbyDuplicate = function(nums, k) {
const hash = {}
for (let i = 0; i < nums.length; i++) {
if (nums[i] in hash && i - hash[nums[i]] <= k) {
return true
} else {
hash[nums[i]] = i
}
}
return false
};