Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- vector<vector<int>> combinationSum2(vector<int>& nums, int target) {
- vector<vector<int>>ans;
- vector<int>temp;
- sort(nums.begin() , nums.end());
- backtrack(nums , target , 0 , ans , temp);
- return ans;
- }
- void backtrack(vector<int>& nums , int target , int id , vector<vector<int>>&ans , vector<int>temp)
- {
- if(target < 0)return ;
- if(target == 0)
- {
- ans.push_back(temp);
- return;
- }
- for(int i=id;i<nums.size();i++)
- {
- if(nums[i] > target)return;
- if(i > id && nums[i] == nums[i-1])continue;
- temp.push_back(nums[i]);
- backtrack(nums , target - nums[i] , i+1 , ans , temp );
- temp.pop_back();
- }
- }
- };
Add Comment
Please, Sign In to add comment