路徑與路徑和

Backtracking中對字符串的傳遞處理:用 StringBuilder 傳遞可以省去遞歸中新建的 string copies.

StringBuilder 的backtrack也很簡單,直接setLength(int len) 

Binary Tree Paths

1.本質是preorder traversal

2.相對於dfs多了一個判斷當前node是否是葉子,如果是葉子就backtrack,反之就不backtrack 

2. 在leaf node上使用sb.setLength()來backtracking(因爲後面的兩個 dfs 都沒有做

3. 在葉子處return完相當於左子樹的helper跳出進入右子樹helper,執行完畢後去dfs,再去backtracking跳到上一層!!!

https://mnmunknown.gitbooks.io/algorithm-notes/content/lu_jing_yu_lu_jing_he.html

113. Path Sum II

 1. 在樹上找path都是backtracking,思路和上題一模一樣,加到list前判斷一下sum


Tree上,一般root不連續,都會想到全局變量!
全局最優解不一定和 root 與 dfs 遞歸連續,因而用全局變量 int max 解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章