Advertisement
yarin0600

39. Combination Sum LeetCode

Nov 2nd, 2023
732
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. std::vector<std::vector<int>> combinationSum(std::vector<int> &candidates, int target)
  2. {
  3.    std::vector<std::vector<int>> combinations;
  4.    std::vector<int> currentCombination;
  5.    backtrack(candidates, combinations, currentCombination, 0, target);
  6.    return combinations;
  7. }
  8.  
  9. void backtrack(std::vector<int> &candidates, std::vector<std::vector<int>> &combinations,
  10.                std::vector<int> &currentCombination,
  11.                int idx, int currentValue)
  12. {
  13.    if (currentValue < 0)
  14.       return;
  15.  
  16.    else if (currentValue == 0)
  17.    {
  18.       combinations.push_back(currentCombination);
  19.       return;
  20.    }
  21.  
  22.    for (int i = idx; i < candidates.size(); ++i)
  23.    {
  24.       currentCombination.push_back(candidates[i]);
  25.       backtrack(candidates, combinations, currentCombination, i, currentValue - candidates[i]);
  26.       currentCombination.pop_back();
  27.    }
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement