题目;
分析:
这道题需要进行查重判断,于是我果断使用哈希,key为nums的值,value为下标索引,每次我们先判断哈希里有没有这个key,有的话读取上一个的索引来判断两索引之差是否小于等于k
代码:
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
HashMap<Integer,Integer> hash=new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++){
if(!hash.containsKey(nums[i])){
hash.put(nums[i],i);
}else{
int j=hash.get(nums[i]);
if(i-j<=k){
return true;
}else{
hash.put(nums[i],i);
}
}
}
return false;
}
}