mirror of
https://github.com/labuladong/fucking-algorithm.git
synced 2025-07-05 20:06:31 +08:00
update content
This commit is contained in:
@ -34,9 +34,11 @@
|
||||
|
||||
回溯算法是什么?解决回溯算法相关的问题有什么技巧?如何学习回溯算法?回溯算法代码是否有规律可循?
|
||||
|
||||
其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:**回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」**,本文就是简单提一下,你有个印象就行了。等你看了 [手把手刷二叉树(纲领篇)](https://labuladong.github.io/article/fname.html?fname=二叉树总结) 和 [图论算法基础](https://labuladong.github.io/article/fname.html?fname=图) 之后就能深刻理解这句话的含义了。
|
||||
其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」,本文就是简单提一下,你有个印象就行了。等你看了 [手把手刷二叉树(纲领篇)](https://labuladong.github.io/article/fname.html?fname=二叉树总结) 和 [图论算法基础](https://labuladong.github.io/article/fname.html?fname=图) 之后就能深刻理解这句话的含义了。
|
||||
|
||||
废话不多说,直接上回溯算法框架,解决一个回溯问题,实际上就是一个决策树的遍历过程,站在回溯树的一个节点上,你只需要思考 3 个问题:
|
||||
**抽象地说,解决一个回溯问题,实际上就是遍历一棵决策树的过程,树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍,把叶子节点上的答案都收集起来,就能得到所有的合法答案**。
|
||||
|
||||
站在回溯树的一个节点上,你只需要思考 3 个问题:
|
||||
|
||||
1、路径:也就是已经做出的选择。
|
||||
|
||||
|
@ -373,6 +373,7 @@ N 叉树的遍历框架,找出来了吧?你说,树这种结构重不重要
|
||||
- [本站简介](https://labuladong.github.io/article/fname.html?fname=home)
|
||||
- [环检测及拓扑排序算法](https://labuladong.github.io/article/fname.html?fname=拓扑排序)
|
||||
- [目标和:背包问题的变体](https://labuladong.github.io/article/fname.html?fname=targetSum)
|
||||
- [算法可视化功能简介(必读)](https://labuladong.github.io/article/fname.html?fname=可视化简介)
|
||||
- [算法学习和心流体验](https://labuladong.github.io/article/fname.html?fname=心流)
|
||||
- [算法时空复杂度分析实用指南](https://labuladong.github.io/article/fname.html?fname=时间复杂度)
|
||||
- [题目不让我干什么,我偏要干什么](https://labuladong.github.io/article/fname.html?fname=nestInteger)
|
||||
|
Reference in New Issue
Block a user