回溯类题目
解决一个回溯问题,实际上就是一个决策树的遍历过程。需要考虑三个问题
1、路径:就是已经做出的选择
2、选择列表:就是当前可以做出的选择
3、结束的条件:就是到达决策树底层,无法在做选择的条件。
算法框架:
1
2
3
4
5
6
7
8
9 result = []
def backtrack(路径, 选择列表):
if 满足结束条件:
result.add(路径)
return
for 选择 in 选择列表:
做选择
backtrack(路径, 选择列表)
撤销选择/回溯