337. House Robber III
1.解題策略(動態規劃 + 後序遍歷 DFS)
為每個節點設計一個函式 dfs(TreeNode node),它會回傳一個 int[] 陣列:
- res[0]:表示不偷這個節點時,最大收益
- res[1]:表示偷這個節點時,最大收益
2.範例說明
Input:
- 偷 root(3) → 不能偷 2 和 3 → 3 + 3 + 1 = 7
- 不偷 root(3) → 可以偷 2 和 3 → 2 + 3 = 5
- 答案為 max(7, 5) = 7
3.程式碼截圖:
4.學習心得:此次選的題目跟昨天的相似,所以這次有試著用昨天的解題方法去解看看,當然,過程雖然沒有那麼順利,但我還是有從錯誤中學習知識,我相信之後可以用這些知識去解很多題目。