class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
int count=0;
for(int i=0;i<nums1.size();i++){
for(int j=0;j<nums2.size();j++){
for(int k=0;k<nums3.size();k++){
for(int l=0;l<nums4.size();l++){
if(i>=0&&i<nums1.size()&&j>=0&&j<nums1.size()&&k>=0&&k<nums1.size()&&l>=0&&l<nums1.size()&&(nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0)){
count++;
}
}
}
}
}
return count;
}
};
超时
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
int count=0;
unordered_map<int,int> ab;
for(int a:nums1){
for(int b:nums2){
ab[a+b]++;
}
}
for(int c:nums3){
for(int d:nums4){
if(ab.find(0-c-d)!=ab.end()){
count+=ab[0-c-d];
}
}
}
return count;
}
};
时间复杂度降到n^2