第454题.四数相加II
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
unordered map 如果是int 初始值, 则默认初始化为0
如果要遍历4个数组,n^4 复杂度时,看看能不能缩短成n^2
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
unordered_map<int,int> firstTwoSumCount;
for(int i = 0 ; i < nums1.size(); i++){
for(int j = 0; j < nums2.size();j++){
int twosum = nums1[i] + nums2[j];
firstTwoSumCount[twosum]++;
}
}
int count = 0;
for(int i = 0 ; i < nums3.size();i++){
for(int j = 0; j < nums4.size();j++){
if(firstTwoSumCount.find(0 - (nums3[i] + nums4[j])) != firstTwoSumCount.end()) {
count += firstTwoSumCount[0 - (nums3[i] + nums4[j])];
}
}
}
return count;
}
};
383. 赎金信
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
考虑何时用数组,何时用map或者set
数组要初始化啊,怎么记不住呢
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int charCount[26] = {0};
for(int i = 0 ; i < magazine.size() ;i++){
charCount[magazine[i] - 'a']++;
}
for(int i = 0 ; i < ransomNote.size(); i++){
charCount[ransomNote[i] - 'a']--;
if(charCount[ransomNote[i] - 'a'] < 0) return false;
}
return true;
}
};
第15题. 三数之和
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
没用到哈希,都是双指针
难,没写出来
18. 四数之和
三数之和的进阶版,没写出来