Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- std::vector<std::vector<int>> combinationSum(std::vector<int> &candidates, int target)
- {
- std::vector<std::vector<int>> combinations;
- std::vector<int> currentCombination;
- backtrack(candidates, combinations, currentCombination, 0, target);
- return combinations;
- }
- void backtrack(std::vector<int> &candidates, std::vector<std::vector<int>> &combinations,
- std::vector<int> ¤tCombination,
- int idx, int currentValue)
- {
- if (currentValue < 0)
- return;
- else if (currentValue == 0)
- {
- combinations.push_back(currentCombination);
- return;
- }
- for (int i = idx; i < candidates.size(); ++i)
- {
- currentCombination.push_back(candidates[i]);
- backtrack(candidates, combinations, currentCombination, i, currentValue - candidates[i]);
- currentCombination.pop_back();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement