day 4
力扣454题https://leetcode.cn/problems/4sum-ii/description/
四数相加2:
本题和二数相加、三数相加完全不同,本题不用考虑去重的情况,所以更加简单。
用map记录nums1和nums2中各数字加起来的和出现了多少次。其中value是和,key是出现的次数。代码如下
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
map<int,int> a;
for(int e:nums1){
for(int b:nums2){
a[e+b]++;
}
}
int count=0;
for(int c:nums3){
for(int d:nums4){
if(a.count(-c-d)){
count+=a[-c-d];
}
}
}
return count;
}
};