一题目:
二 思路:
两两分组,num1, num2一组,计算他们和的组合结果和次数
num3,num4一组,判断是否有和的相反数,每次都这种出现就要加上对应组合可能
三 代码:
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
//等于某个值的组合有多少个
Map<Integer,Integer> sumAndCount=new HashMap<>();
for (int i : nums1) {
for (int j : nums2) {
sumAndCount.put(i+j,sumAndCount.getOrDefault(i+j,0)+1);
}
}
int sum=0;
for (int i : nums3) {
for (int j : nums4) {
if (sumAndCount.containsKey(-(i+j))){
sum+=sumAndCount.get(-(i+j));
}
}
}
return sum;
}