dfs—深度优先搜索(以《啊哈算法》一书中的为例)
dfs可以看作一种宏观的以回溯法为基础的搜索方式,只需保证前几步(甚至只要思路正确)正确,就能保证整个dfs的正确性。模板:
void dfs(...){
if(...){
...
return;
} //通常为判断终止条件与越界条件
for(...){//为了遍历所有的可能
note[...] = 1; //有些要用到标记
dfs(...+1);//通常需要算路径需要更新值
note[...] = 0;//记得解除标记
}
return;
}
网友评论