回溯的基础:穷举。
回溯的核心:在当前节点做出选择,并且递归选择,当前节点处理完毕后撤销这个选择。
回溯思考的问题:
- 路径:已经走了的路。
- 选择列表:还未走的路。
- 结束条件:到达决策树底层时候的递归出口。
所谓的做选择:其实就是从“未走的路”中选择一条,把它放到已走的路中。
所谓的撤销选择:其实就是从“已走的路”中,拿出一个将它恢复到“未走的路” 中。
result = [];
void method(路径,选择列表){
// 定义一个参数有路径和选择列表的方法
if(如果‘路径’和‘选择列表’的关