leetcode (Contains Duplicate II)
阿新 • • 發佈:2018-11-24
Title:Contains Duplicate II 219
Difficulty:Easy
原題leetcode地址:https://leetcode.com/problems/contains-duplicate-ii/
1. 採用HashMap,KEY存放陣列中的數,Value存放陣列中的下標,注意,HashMap中存放之前已經存在的key(value不一樣),會重新更新同一個key的value值。
時間複雜度:O(n),一次for迴圈,遍歷整個陣列的長度。
空間複雜度:O(n),申請整個一個HashMap,最長需要存放n個。
/** * 採用HashMap,KEY存放陣列中的數,Value存放陣列中的下標 * @param nums * @param k * @return */ public static boolean containsNearbyDuplicate(int[] nums, int k) { if (nums == null || nums.length <= 1) { return false; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(nums[i])) { if (i - map.get(nums[i]) <= k) { return true; } map.put(nums[i], i); } else { map.put(nums[i], i); } } return false; }