代码随想录26|回溯总结

回溯总结:链接地址

回溯三部曲 :参数、终止条件、for遍历(递归、回溯)

模板如下:

cpp 复制代码
void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }

    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}

组合问题:

startIndex来控制for循环的起始位置
切割问题:

切割过的地方不能重复切割所以递归函数需要传入i + 1
子集问题:

在树形结构中子集问题是要收集所有节点的结果,而组合问题是收集叶子节点的结果

相关推荐
XS0301067 分钟前
Java 基础(九) IO流
java·开发语言·php
Teable任意门互动8 分钟前
多维表格哪家最好用最容易上手?国产开源 Teable 测评
开发语言·数据库·开源·excel·飞书·开源软件
独隅8 分钟前
此电脑网络位置异常的AD域排错指南
开发语言·php
陈天伟教授10 分钟前
GPT Image 2
开发语言·人工智能·架构
云泽80813 分钟前
二叉树高阶笔试算法题精讲(一):序列化、层序遍历、LCA 与 BST 转换
数据结构·c++·算法
他是龙55117 分钟前
68:Java 原生反序列化 & SpringBoot 攻防
java·开发语言·spring boot
再卷也是菜22 分钟前
算法提高篇(3)线段树(下)
算法
嘻嘻哈哈樱桃27 分钟前
牛客经典101题题解集--二叉树
java·数据结构·python·算法·leetcode·职场和发展
cen__y29 分钟前
Linux05(管道)
linux·运维·服务器·c语言·开发语言·文件流
6Hzlia29 分钟前
【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法
c++·算法·leetcode