1 .解决问题:
- 组合
- 切割
- 子集
- 排列
- 棋盘
-
抽象成🌲来解决。
-
回溯模板
void backtraking(参数){
if(终止条件){
存放结果
return;
}
for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
处理节点;
backtraking(路径,选择列表); //递归
回溯,撤销处理结果
}
}
- 递归函数的参数和返回值
- 确定终止条件
- 单层递归逻辑
1 .解决问题:
抽象成🌲来解决。
回溯模板
void backtraking(参数){
if(终止条件){
存放结果
return;
}
for(选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
处理节点;
backtraking(路径,选择列表); //递归
回溯,撤销处理结果
}
}