算法分析:哈希表
1.循环A,B数组的每个数相加,用hash表来记录产生和对应的选法;
2.循环C,D数组,用查询hash[-c-d]在1中出现的次数
3.hash.count(key)返回对应key的value存在的个数;
4.hash.find(key)返回对应key的迭代器,其对应value存在的判断为:hash.find(key)!=hash.end();
代码
class Solution {
public:
int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
unordered_map<int,int> hash;//value这里对应出现次数
int res=0;
for(auto& a: A)
for(auto& b: B)
hash[a+b]++;
for(auto& c:C)
for(auto& d:D)
res+=hash[-c-d];
return res;
}
};