Suma de combinación - Niuke

Inserte la descripción de la imagen aquí

class Solution {
    
    
public:
    vector<vector<int>> res;
    void getAns(vector<int> &num, vector<int> &path, int curSum, const int& target){
    
    
        if(curSum > target) return;
        if(curSum == target){
    
    
            res.push_back(path);
        } else {
    
    
            vector<int> search;
            for(int i=0;i<num.size();i++){
    
    
                if(path.size()==0 || path[path.size()-1] <= num[i]){
    
    
                    path.push_back(num[i]);
                    getAns(num, path, curSum + num[i], target);
                    path.pop_back();
                }
            }
        }
        
    }
    vector<vector<int> > combinationSum(vector<int> &candidates, int target) {
    
    
        vector<int> path;
        sort(candidates.begin(), candidates.end());
        getAns(candidates, path, 0, target);
        return res;
    }
};

Supongo que te gusta

Origin blog.csdn.net/weixin_40315481/article/details/108658836
Recomendado
Clasificación