第九周
重点考察BFS 与 DFS
BFS
扩散后,对于路径进行标记(不走回头路)。 mark[][]
扫描到目标后加一,对于求最短路径有奇效。 search()
效率为x^n.
双向BFS
以起点与终点为源点,同时对对方进行扫描,效率为2*(x^(n/2)).
搜索交替进行。
DFS
以深度为优先原则进行搜索,常用递归实现
个人感觉如同进行“分身”,每层递归,都是在从各个方向加深搜索深度。
最后的返回条件要注意,同时也需在每层递归后“初始化”一下路径。
对于求路径个数的探索型问题很好用。