s0454
This commit is contained in:
31
src/s0454_4sum.cpp
Normal file
31
src/s0454_4sum.cpp
Normal file
@@ -0,0 +1,31 @@
|
||||
#include "s0454_4sum.hpp"
|
||||
|
||||
int S0454::fourSumCount(vector<int>& nums1, vector<int>& nums2,
|
||||
vector<int>& nums3, vector<int>& nums4) {
|
||||
unordered_map<int, int> map1, map2;
|
||||
for (int i{0}; i < nums1.size(); ++i) {
|
||||
for (int j{0}; j < nums2.size(); ++j) {
|
||||
if (map1.count(nums1[i] + nums2[j]) > 0) {
|
||||
++map1[nums1[i] + nums2[j]];
|
||||
} else {
|
||||
map1[nums1[i] + nums2[j]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i{0}; i < nums3.size(); ++i) {
|
||||
for (int j{0}; j < nums4.size(); ++j) {
|
||||
if (map2.count(nums3[i] + nums4[j]) > 0) {
|
||||
++map2[nums3[i] + nums4[j]];
|
||||
} else {
|
||||
map2[nums3[i] + nums4[j]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
int cnt{0};
|
||||
for (unordered_map<int, int>::iterator iter = map1.begin(); iter != map1.end(); ++iter) {
|
||||
if (map2.count(-iter->first) > 0) {
|
||||
cnt += iter->second * map2[-iter->first];
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
}
|
Reference in New Issue
Block a user