LeetCode算法网站算法题
https://leetcode-cn.com/problems/pairs-with-sum-lcci/
Java使用Map哈希表储存数组中每一个值出现的次数辅助实现
注意:即使遍历到当前值就是答案值时没有储存进入答案数组,到后面也一定会被放进去
class Solution {
public List<List<Integer>> pairSums(int[] nums, int target) {
List<List<Integer>> res=new ArrayList<List<Integer>>();
Map<Integer,Integer>map=new HashMap<>();//哈希表放置的是每一个数据以及它出现的次数
for (int n:nums){
Integer count=map.get(target-n);
if (count==null){//没有找到对应的另一个目标值的话,把数据放入哈希表
map.put(n,map.getOrDefault(n,0)+1);
}else {//找到另一个对应的目标值
res.add(Arrays.asList(n,target-n));//放入返回数组中
//对当前目标值没有进行加入操作,就相当于减去当前目标值出现次数一次
if(count==1){//如果另一个目标值出现的次数只为1,直接移除对应
map.remove(target-n);
}else {//不为1的话就
map.put(target-n,count-1);
}
}
}
return res;
}
}