Java/219. Contains Diplicate II 存在重复元素 II

题目

Java/219. Contains Diplicate II 存在重复元素 II


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;
    }
}