LeetCode 39. 组合总和

发布时间 2023-06-07 20:16:34作者: 穿过雾的阴霾
class Solution {
public:
    vector<vector<int>> res;
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        dfs(candidates,0,target);
        return res;
    }
    vector<int> path;
    void dfs(vector<int>& candidates,int u,int target)//枚举每个数字选几个
    {
        if(target==0||u==candidates.size())
        {
            if(!target) res.push_back(path);
            return;
        }
        for(int i=0;i*candidates[u]<=target;i++)
        {
            dfs(candidates,u+1,target-i*candidates[u]);
            path.push_back(candidates[u]);
        }
        for(int i=0;i*candidates[u]<=target;i++)    path.pop_back();
            
    }
};