什么是回溯法?
答 :回溯法是一种纯暴力收索,用来解决一般for循环不好解决的问题,向排列、组合、棋盘问题、切割问题、子集问题等。
回溯法的模板:
void backtracking(参数){
if(终止条件){
收集结果;
return 结果;
}
for(选择:本层集合中的元素(树中节点的孩子数量就是集合的大小)){
处理节点;
backtracking(路径,选择列表);
回溯,撤销处理结果。
}
}
回溯法离不开递归,可以将问题抽象成树形结构去解决,解决问题有一般的套路