Given an integer array nums and an integer k, return true if there are two distinct indices i and j in the array such that nums[i] == nums[j] and abs(i - j) <= k.
Example 1:
Input: nums = [1,2,3,1], k = 3 Output: true
Example 2:
Input: nums = [1,0,1,1], k = 1 Output: true
Example 3:
Input: nums = [1,2,3,1,2,3], k = 2 Output: false
Constraints:
1 <= nums.length <= 105-109 <= nums[i] <= 1090 <= k <= 105class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int, int> m;
for(uint_fast8_t i=0; i<(uint_fast8_t)nums.size(); i++){
if(m[nums[i]] && i-m[nums[i]]<k)
return true;
m[nums[i]]=i+1;
}
return false;
}
};class Solution {
public:
bool containsNearbyDuplicate(vector<int>& nums, int k) {
unordered_map<int, int> m;
for(uint_fast8_t i=0; i<(uint_fast8_t)nums.size(); i++){
if(m[nums[i]] && i-m[nums[i]]<k)
return true;
m[nums[i]]=i+1;
}
return false;
}
};/**
* @param {number[]} nums
* @param {number} k
* @return {boolean}
*/
var containsNearbyDuplicate = function(nums, k) {
var arr=[];
for(var rt=0; rt<nums.length; rt++){
if(arr[nums[rt]] && rt+1-arr[nums[rt]]<=k)
return true;
arr[nums[rt]]=rt+1;
}
return false;
};