class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
unordered_map<int,int> res;
int count=0;
for(auto &i:nums1){
for(auto &j:nums2){
++res[i+j];
}
}
for(auto &i:nums3){
for(auto&j:nums4){
int target=0-i-j;
if(res.find(target)!=res.end()){
count+=res[target];
}
}
}
return count;
}
};
PS:使用 auto &i
意味着 i
是一个对容器元素的引用,而不是元素的副本。当在循环中遍历容器时,如果只需要读取元素的值而不修改它,使用引用可以避免不必要的复制,减少了内存的开销和时间消耗。
出处:不想再打铁