knakul853

Untitled

Jul 17th, 2020
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     vector<vector<int>> combinationSum2(vector<int>& nums, int target) {
  4.        
  5.         vector<vector<int>>ans;
  6.         vector<int>temp;
  7.         sort(nums.begin() , nums.end());
  8.         backtrack(nums , target , 0 , ans , temp);
  9.        
  10.         return ans;
  11.        
  12.     }
  13.    
  14.     void backtrack(vector<int>& nums , int target , int id , vector<vector<int>>&ans , vector<int>temp)
  15.     {
  16.          if(target < 0)return ;
  17.        
  18.         if(target == 0)
  19.         {
  20.             ans.push_back(temp);
  21.             return;
  22.         }
  23.        
  24.         for(int i=id;i<nums.size();i++)
  25.         {
  26.             if(nums[i] > target)return;
  27.             if(i > id && nums[i] == nums[i-1])continue;
  28.            
  29.                 temp.push_back(nums[i]);
  30.                
  31.                 backtrack(nums , target - nums[i] , i+1 , ans , temp );
  32.                
  33.                 temp.pop_back();
  34.            
  35.         }
  36.     }
  37. };
Add Comment
Please, Sign In to add comment