內容
給定一個整數(shù)數(shù)組和一個整數(shù) k,判斷數(shù)組中是否存在兩個不同的索引 i 和 j俘枫,使得 nums [i] = nums [j]腥沽,并且 i 和 j 的差的絕對值最大為 k。
示例 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
思路
這里就是利用map(對象)用來記錄每次遍歷的值(key)的下標(value)鸠蚪,如果某次遍歷中今阳,遇到了一個已經(jīng)在map中存在的鍵值對,那么這個時候判斷當前的下標的絕對值之差是否在k的范圍內
代碼
/**
* @param {number[]} nums
* @param {number} k
* @return {boolean}
*/
var containsNearbyDuplicate = function(nums, k) {
var map={};
for(var i=0;i<nums.length;i++){
if(map[nums[i]]>=0 && Math.abs(map[nums[i]]-i)<=k){
return true;
}else{
map[nums[i]]=i;
}
}
return false;
};