#include "s0454_4sum.hpp" int S0454::fourSumCount(vector& nums1, vector& nums2, vector& nums3, vector& nums4) { unordered_map 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::iterator iter = map1.begin(); iter != map1.end(); ++iter) { if (map2.count(-iter->first) > 0) { cnt += iter->second * map2[-iter->first]; } } return cnt; }