Java/219. Contains Diplicate II 存在重复元素 II
题目
代码部分一(1113ms 2.25%)
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
if(k < 0) return false;
for(int i = 0; i < nums.length; i++){
for(int j = 1; j <= k && j < nums.length - i; j++){
if(nums[i] == nums[i + j])return true;
}
}
return false;
}
}
代码部分二(14ms 93.71%)
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
if(k < 0) return false;
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < nums.length; i++){
if(map.containsKey(nums[i])){
if(k >= i - map.get(nums[i])) return true;
}
map.put(nums[i], i);
}
return false;
}
}