代码随想录 回溯—组合

递归函数三部曲:

递归函数参数返回值

确定终止条件

单层递归逻辑

**思路:**result存组合结果,path存一个结果生成的路径,回溯函数的参数除了所传进去的n和k,还要传进一个起始点startIndex,这就是确定了参数返回值;if()确定终止条件;for循环里先把当前节点push进path,再进行递归,最后pop出来,给后面的节点pop进留位子。最后返回result。

c++题解:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> result;
    vector<int> path;
    void backtrace(int n,int k,int startIndex)
    {
        if(path.size()==k)
            result.push_back(path);
        for(int i=startIndex;i<=n;i++)
        {
            path.push_back(i);
            backtrace(n,k,i+1);//递归
            path.pop_back();
        }
        return;
    }

    vector<vector<int>> combine(int n, int k) {
        backtrace(n,k,1);
        return result;
    }
};
相关推荐
浮生091914 分钟前
DHUOJ 基础 85 86 87
数据结构·c++·算法
CHANG_THE_WORLD38 分钟前
C++指针与引用:从语法到底层的全面剖析
java·数据结构·c++
say_fall42 分钟前
双指针算法详解:从原理到实战(含LeetCode经典例题)
算法·leetcode·职场和发展
追随者永远是胜利者1 小时前
(LeetCode-Hot100)33. 搜索旋转排序数组
java·算法·leetcode·职场和发展·go
你怎么知道我是队长1 小时前
计算机系统基础3---值的表示2---定点数与浮点数的介绍
算法
云深处@1 小时前
【数据结构】栈
数据结构·算法
啊我不会诶1 小时前
Codeforces Round 1076 (Div. 3) vp补题
算法·深度优先
Bear on Toilet2 小时前
递归_二叉树_49 . 路径综合Ⅲ
数据结构·算法·前缀和·深度优先·递归
CHANG_THE_WORLD2 小时前
深入指针3 - 完全精讲版
数据结构·算法
im_AMBER2 小时前
Leetcode 124 二叉搜索树的最小绝对差 | 二叉树的锯齿形层序遍历
数据结构·学习·算法·leetcode·二叉树