四数相加II
题目链接454. 四数相加 II - 力扣(LeetCode)
class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { unordered_map<int, int> map; int count = 0; for(int a : nums1){ for(int b : nums2){ map[a + b]++; //记录前两个数组元素和,和的值为key,次数为value } } for(int c : nums3){ for(int d : nums4){ if(map.find(0 - c - d) != map.end()){ count += map[0 - c - d]; //如果能找到一个key为c+d的相反数,说明符合题意,他的value为增加的次数。 } } } return count; } };
基本思路还是类似,涉及多次反复查找的时候就可以 用哈希。把值变成索引来快速查找。写的时候有些细节没有太注意
标签:count,map,四数,int,vector,Day10,LeetCode,刷题 From: https://www.cnblogs.com/tianmaster/p/16875506.html