leetcode Contains Duplicate II
阿新 • • 發佈:2018-12-07
Contains Duplicate II 重複索引在指定的長度
解題思路:
1.新建一個map,鍵---值 鍵是元素 值是元素最近一次出現的索引。
2.當前元素第一次出現put進map,如果是第二次出現,判斷索引與第一次出現的索引是否在指定的範圍內,在直接返回true,不在更新索引位置。
public static void main(String[] args) { int[] arr={1,2,3,1,2,3}; int k=2; boolean flag = containsNearbyDuplicate(arr, k); System.out.println(flag); } public static boolean containsNearbyDuplicate(int[] nums, int k) { Map<Integer,Integer> map=new HashMap<>(); for(int i=0;i<nums.length;i++){ if(!map.containsKey(nums[i])){ map.put(nums[i],i); }else{ Integer j = map.get(nums[i]); if(i-j<= k){ return true; } //更新nums[i]的索引 map.put(nums[i],i); } } return false; }