437. Path Sum III - Medium
前往題目
想法
- 毫無想法,說不定是要用什麼
bottom-up
之類的
思路
暴力解
DFS
- 每個
node
都向下遞迴找尋符合sum
的 - 每次發現都紀錄,最後直接回傳
counter
就好
優化解
突然有個小小的領悟,DFS
方法第一次被呼叫的時候最後一行return
的就是最終的結果,可以想像成一開始只有一個點,然後這個點還會再呼叫dfs
,每次呼叫dfs
方法就會拓展一個子節點,最後遇到base case
例如node == null
後一個一個節點收回來最終變回一個點,然後return
給一開始呼叫這個方法的地方
- 用
map
紀錄prefix sum
DFS
走遍所有nodes
- 每到一個
node
都檢查map
是否有對應的preSum
,例如target
是10
,當前node
是6
,那需要preSum
有4
才能達到目標
Code
437. Path Sum III - Medium
https://f88083.github.io/2024/01/11/437-Path-Sum-III-Medium/