直接做O(N^4)
双指针比较麻烦,因为有四个数组
把一个数组预处理到HashMap里,O(n^3)
把两个数组之和预处理到HashMap里,时间复杂度O(n^2)
class Solution {
public:
int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
unordered_map<int, int> cnt;
for(auto a : A){
for(auto b : B){
cnt[a + b]++;
}
}
int res = 0;
for(auto c : C){
for(auto d : D){
res += cnt[-c - d];
}
}
return res;
}
};