用哈希表map方法解题
class Solution {
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
int res = 0;
//用这个变量的话要先导入下面两个类
// import java.util.Map;
// import java.util.HashMap;
//声明一个map变量
Map<Integer,Integer> map = new HashMap<>();
//通过循环来把前两个数组的和的组合给存入map中,
//他的key为两数之和,value为出现的次数
for (int i : nums1 ) {
for (int j : nums2 ) {
int sum = i + j;
//map中的put方法 是将map中更新sum和value的值
//然后getOrDefault方法是尝试从map中获取键sum的值
//如果不存在的话就返回defaultValue,这个中的值为0然后再加1
map.put(sum,map.getOrDefault(sum, 0) + 1);
}
}
for (int i : nums3 ) {
for (int j : nums4 ) {
// 计算数组3和4的和
int sum = i+ j ;
//通过getOrDefault方法寻找对应值若找到了便将res+1;
res+=map.getOrDefault(0-sum,0);
}
}
//最后返回找到次数,便是元组数
return res;
}
}