Java
给定数组和目标差值k
找到无重复的数组对,满足差值为k
为保证唯一性,在匹配为右配对后,应在map中移除该元素,避免再次被认为右配对(其实是重复的)
class Solution {
public int findPairs(int[] nums, int k) {
if(k<0)
return 0;
int res=0;
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<nums.length;i++)
map.put(nums[i],i);
for(int i=0;i<nums.length;i++){
if(map.containsKey(nums[i]+k)&&(map.get(nums[i]+k)!=i)){
map.remove(nums[i]+k);
res++;
}
}
return res;
}
}