这个题给了四个数组,可以两两判断,就类比两数相加那道题了
对于num1 num2
用unordered_map存储,key是num1,num2中数字相加之和,value是值出现的次数
for(int a:num1)
{for(int b:num2
{map[a+b]++;
最后要计算四个数组相加等于零出现的次数
用count存,同理对num2 num3循环,找到等于零的,count累加
/*
* @lc app=leetcode.cn id=454 lang=cpp
*
* [454] 四数相加 II
*/
// @lc code=start
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
unordered_map<int,int> map;
for(int a:nums1)
{
for(int b:nums2)
{
map[a+b]++;
}
}
int count = 0;
for(int c:nums3)
{
for(int d:nums4)
{
if(map.find(0-c-d) != map.end())
{
count += map[0-c-d];
}
}
}
return count;
}
};
// @lc code=end