When to use DFS

判断DFS (Back Tracking) 很简单,拿到一个问题,第一感觉如果不穷举一下就没法知道答案,那就可以开始DFS了。
一般DFS的问题有三种:

  1. Find a path to success 判断有没有解

  2. Find all paths to success 找到所有解 <<< 这一类通常是考察的重点(Find all possible solutions)

    • 求所有解的个数

    • 求所有解的具体信息

  3. Find the best path to success 找到最优解

回溯可以抽象为一棵树,我们的目标可以是找这个树有没有good leaf,也可以是问有多少个good leaf,也可以是找这些good leaf都在哪,也可以问哪个good leaf最好,分别对应上面所说三种问题分类。

results matching ""

    No results matching ""