Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference between i and j is at most k.
class{ publicbooleancontainsNearbyDuplicate(int[] nums, int k){ if (nums == null || nums.length == 0 || k == 0) { returnfalse; } Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { if (map.containsKey(nums[i])) { int value = map.get(nums[i]); if (i - value <= k) { returntrue; } } //如果不存在nums[i]的话,则直接增加 map.put(nums[i], i); } returnfalse; } }
近期评论