代码随想录26|回溯总结

回溯总结:链接地址

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

模板如下:

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

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

组合问题:

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

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

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

相关推荐
sa10027几秒前
基于Python的京东评论爬虫
开发语言·爬虫·python
foundbug999几秒前
STFT在图像配准中的MATLAB实现
开发语言·matlab
Jeremy爱编码4 分钟前
leetcode热题组合总和
算法·leetcode·职场和发展
ii_best9 分钟前
安卓/ios脚本开发辅助工具按键精灵横纵坐标转换教程
android·开发语言·ios·安卓
努力学算法的蒟蒻14 分钟前
day57(1.8)——leetcode面试经典150
算法·leetcode·面试
言之。14 分钟前
大模型 API 中的 Token Log Probabilities(logprobs)
人工智能·算法·机器学习
a31582380621 分钟前
Android 大图显示策略优化显示(二)
android·java·开发语言·javascript·kotlin·glide·图片加载
自然数e25 分钟前
c++多线程【多线程常见使用以及几个多线程数据结构实现】
数据结构·c++·算法·多线程
黛色正浓28 分钟前
leetCode-热题100-普通数组合集(JavaScript)
java·数据结构·算法
元亓亓亓32 分钟前
LeetCode热题100--5. 最长回文子串--中等
linux·算法·leetcode