思路,首先将数组nums中前k个数放入map中查看是否有相同的,如果在,返回true;如果没有,添加;
然后,检查后面的每一个数是否在map中,如果在,返回ture;如果没有,添加,并删除map中最先添加的那个;
public class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
if(nums.length<=1){
return false;
}
Map<Integer, String> map = new HashMap<Integer, String>();
for (int i = 0; i < nums.length; i++) {
if (map.get(nums[i]) == null) {
map.put(nums[i], "");
if (i >= k) {
map.remove(nums[i - k]);
}
} else {
return true;
}
}
return false;
}
}