Open ylqi007 opened 11 months ago
回溯算法(backtracking)也叫试探法,它是一种系统地搜索问题解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退,换一条路再试。回溯算法其实就是穷举法。不过回溯算法使用剪枝函数,剪去一些不可能到达的最终状态的节点,从而减少状态空间树节点的生成。
Backtracking属于DFS。
Reference:
Template:
result = [] func backtrack(选择列表,路径): if 满足结束条件: result.add(路径) return for 选择 in 选择列表: 做选择 backtrack(选择列表,路径) 撤销选择
Backtracking一般可以解决如下几种问题:
LeetCode中的题目:
回溯算法(backtracking)也叫试探法,它是一种系统地搜索问题解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退,换一条路再试。回溯算法其实就是穷举法。不过回溯算法使用剪枝函数,剪去一些不可能到达的最终状态的节点,从而减少状态空间树节点的生成。
Backtracking属于DFS。
Reference:
Template: