1.题目描述
2.思路
3.代码实现
public class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
Map<Integer,Integer> m1=new HashMap<>();
// 1:0, 2:1,3:2,1:3 key存数组的值,value存索引,为getnum[i]做准备,abs(i - j) <= k
for(int i=0;i<nums.length;i++)
{ //当前元素是否在哈希表
if(m1.containsKey(nums[i]))
{ //abs(i - j) <= k
if(i-m1.get(nums[i])<=k)
{
return true;//到满足条件的两个元素
}
}
m1.put(nums[i],i);
//把最近一次遇到重复索引的值存入到哈希表中
}
return false;
}
};