深度优先搜索(depth-first-search),简称 dfs,应该算是应用最广泛的搜索算法,属于图算法的一种。dfs 按照深度优先的方式搜索,通俗的说就是“一条路走到黑”。dfs 是一种穷举的手段,实际上就是把所有的可行方案列举出来,不断去试探,直到找到问题的解,其过程是对每一个可能的分支路径深入到不能再深入为止,而且每个顶点只能访问一次。
话不多说上模板:
void dfs(int deep) {
if (到达边界) {
// 做一些处理后返回
} else {
for(所有可能的选择) {
dfs(deep + 1);
}
}
}