-
设计好递归函数的「入参」和「出参」
-
设置好递归函数的出口(Base Case)
-
编写「最小单元」处理逻辑
以LeetCode 上的「1575. 统计所有可行路径」 为例寻找Base Case;
首先要明确,所谓的找 Base Case,其实是在确定什么样的情况下,算一次有效/无效。
对于本题,找 Base Case 其实就是在确定:什么样的情况下,算是 0 条路径;什么样的情况下,算是 1 条路径。
然后再在 DFS 过程中,不断的累加有效情况(算作路径数量为 1)的个数作为答案。
这是 DFS 的本质,也是找 Base Case 的思考过程。