排列, 组合, 八皇后, 迷宫
回溯算法实质上是深度优先遍历整棵树,
关键点:
- 分叉选择, 到底做何种选择, 选择什么
- 结束条件, 什么时候结束, 一般是遍历到叶子节点结束, 结束了即形成一条路径
算法模板
def backtrack(路径, 可选择列表):
if 结束条件:
result.add(路径)
for i in 可选择列表:
选择
backtrack(路径, 可选择列表)
撤销选择
排列, 组合, 八皇后, 迷宫
回溯算法实质上是深度优先遍历整棵树,
关键点:
def backtrack(路径, 可选择列表):
if 结束条件:
result.add(路径)
for i in 可选择列表:
选择
backtrack(路径, 可选择列表)
撤销选择