代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
zx_741484817 分钟前
PyQt5 环境搭建保姆级教程:PyCharm + QtDesigner + PyUIC 完整配置
开发语言·qt·pycharm·pyqt
Gigavision12 分钟前
CAS(ME)²数据集 感知图卷积网络算法 CAS(ME)²数据集下载
网络·算法
Soari29 分钟前
交换机转发模式
开发语言·网络·php
杜 硕31 分钟前
快速排序02
算法·排序算法
careathers38 分钟前
【数据结构】二叉树拓展
数据结构·算法
deviant-ART39 分钟前
Java 并发编程:深入理解 synchronized 的使用与原理
java·开发语言·后端
java_nnnn1 小时前
LeetCode刷题滑动窗口(长度最小的子数组)
算法·leetcode·职场和发展
@atweiwei1 小时前
训练 AI 大模型系列之 LoRA:不动模型本体,靠一条低秩旁路改专长(附完整手算算例)
人工智能·算法·ai·语言模型·rag
kimnoic1 小时前
Python中使用封装类还是函数以及它们的区别
开发语言·python
代码什么用1 小时前
Java Web 21-22
java·开发语言·web