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 difference between i and jis at most k.
Subscribe to see which companies asked this question
1 public class Solution { 2 public boolean containsNearbyDuplicate(int[] nums, int k) { 3 if(nums.length <= 1 || nums == null) return false; 4 HashMap<Integer,Integer> hm = new HashMap<Integer,Integer>(); 5 for(int i = 0;i<nums.length; i++){ 6 if(hm.containsKey(nums[i])){ 7 int j = hm.get(nums[i]); 8 if(i-j <= k) return true; 9 hm.put(nums[i],i); 10 }else{ 11 hm.put(nums[i],i); 12 } 13 } 14 return false; 15 } 16 }
AC 代码不是很好
时间: 2024-10-10 04:34:17