算法训练day32 回溯算法总结
算法训练day32 回溯算法总结
有递归便有回溯
-
回溯、二叉树遍历、深度优先常混在一起 ---> 都使用了递归
-
是暴力搜索,可以配合剪枝
-
组合、排列、切割、子集、棋盘问题
-
回溯三部曲
-
void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 } }
-
组合问题
- 递归控制纵向遍历、for控制横向遍历、回溯调整结果
未完,,