回溯算法:组合总和

Posted 枫桥客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回溯算法:组合总和相关的知识,希望对你有一定的参考价值。

leetcode:216组合总和

与77题的差别就是这题有了优化

class Solution 
public:
    vector<vector<int>> result;
    vector<int> path;
    int sum = 0;
    void backtracking(int target, int k, int startIndex) 
        if (sum > target) return;//后面都比它大直接返回
        if (path.size() == k) 
            if (sum == target) 
                result.push_back(path);
            

            return;        
        
        for (int i = startIndex; i <= 9; i++) 
            sum += i;
            path.push_back(i);//传进去
            backtracking(target, k, i + 1);
            sum -= i;
            path.pop_back();

        
    
    vector<vector<int>> combinationSum3(int k, int n) 
        backtracking(n, k, 1);
        return result;
    
;

以上是关于回溯算法:组合总和的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode 39 组合总和(回溯算法解题)

代码随想录|day26|回溯算法part03● 39. 组合总和● 40.组合总和II● 131.分割回文串

算法 ---- LeetCode回溯系列问题题解

算法 ---- LeetCode回溯系列问题题解

算法 ---- LeetCode回溯系列问题题解

算法 ---- LeetCode回溯系列问题题解