【code基础】 回溯算法
- 回溯算法也叫回溯搜索法,其本质是穷举,也可以加上剪枝操作进行优化
- 回溯是递归的副产品,只要有递归就存在回溯的思想
- 回溯算法可以抽象为树形结构
回溯法解决如下问题:
- 组合问题,无序
- 排列问题,有序
- 切割问题
- 子集问题
- 棋盘问题
回溯算法套路
void backtracking(参数){
//终止条件
if() {
//1.存放结果
//2. return
}
for(item: 本层集合中的元素) {
//1.处理结点
//2.backtracking(下层结点)
//3.回溯,撤销处理结果
}
}