class Solution {
public:
//转化为两数之和
//时间O(n^2)
int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
int len = A.size();
if(len == 0) return 0;
unordered_map<int, int> mp1, mp2;
for(int i = 0; i < len; i++) {
for(int j = 0; j < len; j++) {
int sum1 = A[i] + B[j];
mp1[sum1]++;
int sum2 = C[i] + D[j];
mp2[sum2]++;
}
}
int res = 0;
for(auto& val : mp1) {
//int key = 0 - val->first; 取值方式错误
int key = 0 - val.first;
if(mp2.find(key) != mp2.end()) {
res += val.second * mp2[key];
}
}
return res;
}
};
LeetCode454. 四数相加 II
最新推荐文章于 2021-12-05 17:31:35 发布