回溯算法解决的问题
回溯算法抽象化
每一个回溯算法的递归回溯过程都可以抽象为一个树形结构(n叉树),在写过树的相关算法题目后相信看到这句话就能想到大概的过程了
类似于下
回溯算法的写法模板
void backtracking(参数) {
if (终止条件) {
存放结果;
return;
}
for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
处理节点;
backtracking(路径,选择列表); // 递归
回溯,撤销处理结果
}
}