基本概念:
一种用于遍历或者搜索图和树的算法,从树的结点开始搜,一直到最后不符合条件位置,(递归也许用上)
算法思想
回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。
模板
public int check(int n/*参数*/) {
if(true/*满足条件*/) {
return 1;
}
return 0;
}
void dfs(int step) {
//判断边界{}用if
/*尝试每个情况{
满足check条件
标记
继续下一步dfs(step+1)
恢复初始状态(回溯的时候要用到)
}
*/
}