Depth-First-Search
LeetCode 2385: Amount of Time for Binary Tree to Be Infected
·1 分鐘
LeetCode
Medium
Hash-Table
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 2385 解題筆記:把樹轉成無向圖,從 start 做 BFS,層數減一就是分鐘數
LeetCode 834: Sum of Distances in Tree
·2 分鐘
LeetCode
Hard
Dynamic-Programming
Tree
Depth-First-Search
Graph
Dp-on-Trees
LeetCode 834 解題筆記:換根 DP:先以 0 為根算子樹大小和 ans[0],再用 ans[child] = ans[parent] - size + (n - size) 推到每個節點
LeetCode 2858: Minimum Edge Reversals So Every Node Is Reachable
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Depth-First-Search
Breadth-First-Search
Graph
LeetCode 2858 解題筆記:換根 DP:先算以 0 為根要翻幾條邊,根移到小孩時,這條邊原本順向就 +1、逆向就 -1
LeetCode 968: Binary Tree Cameras
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 968 解題筆記:後序貪心,每個節點三種狀態:有相機、被覆蓋、沒被覆蓋;有小孩沒被覆蓋才放相機,最後根沒被覆蓋要補一台
LeetCode 863: All Nodes Distance K in Binary Tree
·1 分鐘
LeetCode
Medium
Hash-Table
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 863 解題筆記:先把樹轉成無向圖(補上往父節點的邊),再從 target BFS 走 k 步
LeetCode 437: Path Sum III
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Tree
LeetCode 437 解題筆記:樹上的前綴和 + 雜湊表:先查 prefix - target 再把自己加進去,離開節點時要扣回來
LeetCode 652: Find Duplicate Subtrees
·1 分鐘
LeetCode
Medium
Hash-Table
Tree
Depth-First-Search
Binary-Tree
LeetCode 652 解題筆記:後序把每棵子樹編碼,出現第二次時加入答案;字串編碼最差 O(n^2),改成 (值, 左 id, 右 id) 編號可到 O(n)
LeetCode 99: Recover Binary Search Tree
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Search-Tree
Binary-Tree
LeetCode 99 解題筆記:中序遍歷找逆序:第一次逆序的前一個、最後一次逆序的後一個,就是被交換的兩個節點
LeetCode 449: Serialize and Deserialize BST
·1 分鐘
LeetCode
Medium
String
Tree
Depth-First-Search
Breadth-First-Search
Design
Binary-Search-Tree
Binary-Tree
LeetCode 449 解題筆記:BST 只要存前序,不用空節點標記;反序列化帶著上下界遞迴,O(n)
LeetCode 297: Serialize and Deserialize Binary Tree
·1 分鐘
LeetCode
Hard
String
Tree
Depth-First-Search
Breadth-First-Search
Design
Binary-Tree
LeetCode 297 解題筆記:前序遍歷加上空節點標記就能唯一還原樹;反序列化用迭代器依序取值
LeetCode 687: Longest Univalue Path
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 687 解題筆記:DFS 回傳往下同值的最長鏈(邊數),在每個節點用左 + 右更新答案
LeetCode 515: Find Largest Value in Each Tree Row
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 515 解題筆記:BFS 層序遍歷,每層取最大值;初始值用 -inf