### 383
```C++
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int res[26]={0};
for(int i=0;i<magazine.length();i++)
{
res[magazine[i]-'a']++;
}
for(int i=0;i<ransomNote.length();i++){
res[ransomNote[i]-'a']--;
}
for(int i=0;i<26;i++){
if(res[i]<0){
return false;
}
}
return true;
}
};
```
### 15
```C++
class Solution {
public:
vector<vector<int>> threeSum(vector<int>& nums) {
vector<vector<int>> res;
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size()-1;i++){
if(nums[i]>0){
return res;
}
if(i>0&&nums[i]==nums[i-1]){
continue;
}
int left=i+1,right=nums.size()-1;
while(left<right){
if(nums[i]+nums[left]+nums[right]>0){
right--;
}else if(nums[i]+nums[left]+nums[right]<0){
left++;
}else{
res.push_back(vector<int>{nums[i],nums[left],nums[right]});
while(left<right&&nums[right]==nums[right-1]){
right--;
}
while(left<right&&nums[left]==nums[left+1]){
left++;
}
right--;
left++;
}
}
}
return res;
}
};
```
### 454
```C++
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
unordered_map<int,int> res;
for(int a:nums1){
for(int b:nums2){
res[a+b]++;
}
}
int count=0;
for(int c:nums3){
for(int d:nums4){
if(res.find(0-c-d)!=res.end()){
count+=res[0-c-d];
}
}
}
return count;
}
};
```
### 18
```C++
class Solution {
public:
vector<vector<int>> fourSum(vector<int>& nums, int target) {
vector<vector<int>> res;
sort(nums.begin(),nums.end());
for(int i=0;i<nums.size();i++){
if(nums[i]>target&&nums[i]>=0){
return res;
}
if(i>0&&nums[i]==nums[i-1]){
continue;
}
for(int j=i+1;j<nums.size();j++){
if(nums[i]+nums[j]>target&&nums[i]+nums[j]>=0){
break;//为什么 return res;会出错?
}
if(j>i+1&&nums[j]==nums[j-1]){
continue;
}
int left=j+1;
int right=nums.size()-1;
while(left<right){
if((long)nums[i]+nums[j]+nums[left]+nums[right]>target){
right--;
}else if((long)nums[i]+nums[j]+nums[left]+nums[right]<target){
left++;
}else{
res.push_back(vector<int>{nums[i],nums[j],nums[left],nums[right]});
while(left<right&&nums[right]==nums[right-1]){
right--;
}
while(left<right&&nums[left]==nums[left+1]){
left++;
}
right--;
left++;
}
}
}
}
return res;
}
};
```
代码随想录day7
最新推荐文章于 2024-07-25 23:21:18 发布