Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.
A:
就是简单的,在 k+1的长度中查询 duplicate
public class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Set<Integer> set = new HashSet();
for(int i =0;i< nums.length;i++){
if(i - k - 1 >=0) // delete first
set.remove( nums[i-k-1]);
if(set.contains(nums[i]))
return true;
set.add(nums[i]);
}
return false;
}
}
No comments:
Post a Comment