import java.util.HashMap;
import java.util.Map;
class Solution {
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
int res = 0;
//定义MAP
Map<Integer,Integer> map = new HashMap<>();
//先计算两个数的和
for(int m1: nums1){
for(int m2: nums2){
int sum =m1+m2;
//然后统计对应的出现的次数
map.put(sum, map.getOrDefault(sum, 0)+1);
}
}
//再计算另外两个数的和,和之前的进行匹配
for(int m3:nums3){
for(int m4:nums4){
/*
* 因为四个数之和是0 所以这里只要用0减少就可以了
*/
res += map.getOrDefault(0-m3-m4, 0);
//getOrDefault 设置了一个,默认的值 防止空指针
}
}
return res;
}
}
/*
* 这个题目是独立的两个数组 此时就把对应的四个数组独立
* 然后对应的可以重复
* 此时就是求对应的a和b数组 c和d数组 两个两个的组合
* 然后这样转换成对应的两个数组的和的Key value的处理
*/
454. 四数相加 II
于 2023-08-16 21:02:09 首次发布