Advertisement
Guest User

Untitled

a guest
Jan 24th, 2020
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     void backtrack(vector<int>& nums, int target, vector<int>& curr, vector<vector<int>>& sol, int last_pos) {
  4.         if (target < 0) return;
  5.         if (target == 0) {
  6.             sol.push_back(curr);
  7.             return;
  8.         }
  9.         for (int i = last_pos; i < nums.size(); i++) {
  10.             curr.push_back(nums[i]);
  11.             backtrack(nums, target-nums[i], curr, sol, i);
  12.             curr.pop_back();
  13.         }
  14.        
  15.     }
  16.     vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
  17.         sort(candidates.begin(), candidates.end());
  18.         vector<vector<int>> sol;
  19.         vector<int> curr;
  20.         backtrack(candidates, target, curr, sol, 0);
  21.         return sol;
  22.     }
  23. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement