454.两数相加II
方法:使用哈希映射+分治的思想
将四个数组分为两个部分:
首先计算nums1+nums2对应的值,写入哈希映射
然后再计算nums3+nums4对应的值
class Solution {
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
Map<Integer,Integer> map = new HashMap<>();
for(int i = 0;i<nums1.length;i++){
for(int j = 0;j<nums2.length;j++){
int headsum = nums1[i] + nums2[j];
int count = map.getOrDefault(headsum,0);
map.put(headsum,count+1);
}
}
int res = 0;
for(int i = 0;i<nums3.length;i++){
for(int j = 0;j<nums4.length;j++){
int tailsum = nums3[i] + nums4[j];
res += map.getOrDefault(-tailsum,0);
}
}
return res;
}
}