把和分为两组,先遍历num1和num2,用hashmap的key记录num1、num2和的值,value记录相同和值出现的次数,再遍历num3和num4,再判断hashmap中有没有和为0的key,有就答案加value
class Solution {
public int fourSumCount(int[] num1, int[] num2, int[] num3, int[] num4) {
Map<Integer, Integer> map = new HashMap<>();
int temp;
int a = 0;
for (int i : num1) {
for (int j : num2) {
temp = i + j;
if (map.containsKey(temp)) {
map.put(temp, map.get(temp) + 1);
} else {
map.put(temp, 1);
}
}
}
for (int i : num3) {
for (int j : num4) {
temp = i + j;
if (map.containsKey(0 - temp)) {
a += map.get(0 - temp);
}
}
}
return a;
}
}