216. Combination Sum III
https://leetcode.com/problems/combination-sum-iii/
class Solution { private: vector<vector<int>>res; public: vector<vector<int>> combinationSum3(int k, int n) { vector<int>nums; combination(nums,k,n,1); return res; } void combination(vector<int> &nums,int k,int n,int t){ if(k<=0 || n<=0){ if(k==0 && n==0) res.push_back(nums); else return; } for(int i=t;i<=9;i++){ nums.push_back(i); combination(nums,k-1,n-i,i+1); nums.pop_back(); } } };
209. Minimum Size Subarray Sum
https://leetcode.com/problems/minimum-size-subarray-sum/
class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { int len = nums.size(), start = 0, sum = 0; int minlen = len+1; for (int i = 0; i < len; i++) { sum += nums[i]; while (sum >= s) { minlen = min(minlen, i - start + 1); sum -= nums[start++]; } } return minlen == len+1 ? 0 : minlen; } };
18. 4Sum
https://leetcode.com/problems/4sum/
class Solution { private: vector<vector<int>>res; public: vector<vector<int>> fourSum(vector<int>& nums, int target) { int len = nums.size(); sort(nums.begin(),nums.end()); for(int i=0;i<len;i++){ while(i>0&&nums[i]==nums[i-1]&&i<len) i++; for(int j=i+1;j<len;j++){ while(j>i+1&&nums[j]==nums[j-1]&&j<len)j++; int k=j+1,l=len-1; while(k<l){ while(k>j+1 && nums[k]==nums[k-1] && k<l)k++; while(l<len-1 && nums[l]==nums[l+1] && k<l)l--; if(k==l)continue; if(nums[i]+nums[j]+nums[k]+nums[l]==target){ res.push_back({nums[i],nums[j],nums[k],nums[l]}); k++; } else if(nums[i]+nums[j]+nums[k]+nums[l]>target) l--; else k++; } } } return res; } };