代码随想录 39.组合总和

85 阅读1分钟

39. 组合总和 - 力扣(LeetCode)

带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)| 回溯法精讲!_哔哩哔哩_bilibili

image.png

class Solution {
public:
      vector<int>path;
      vector<vector<int>> result;

void dfs(int index,vector<int>&candidates,int sum,int target)
{
  //剪枝
  if(sum>target)return;
  if(sum==target)
    {
        result.push_back(path);
    }
   for(int i=index;i<candidates.size();i++)
   {
      path.push_back(candidates[i]);
      sum+=candidates[i];
      dfs(i,candidates,sum,target);
      path.pop_back();
      sum-=candidates[i];
   }
}
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {

  dfs(0,candidates,0,target);
   
  return result;
    }
};