https://leetcode.cn/problems/4sum-ii/submissions/490003880/
之前就见过类似的,一直不理解,看了卡哥的讲解,茅厕顿开!
话不多,上代码!
class Solution {
public:
int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D)
{
unordered_map<int, int> hashAC;
for (int a: A)
for (int b: B)
hashAC[a+b]++;
int ans = 0;
for (int a: C)
for (int b: D)
if (hashAC.count(-a - b)) //如果之前的和存在后者和的相反数
ans += hashAC[-a - b];
return ans;
}
};