Dp-on-Trees
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 968: Binary Tree Cameras
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 968 解題筆記:後序貪心,每個節點三種狀態:有相機、被覆蓋、沒被覆蓋;有小孩沒被覆蓋才放相機,最後根沒被覆蓋要補一台
LeetCode 687: Longest Univalue Path
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 687 解題筆記:DFS 回傳往下同值的最長鏈(邊數),在每個節點用左 + 右更新答案
LeetCode 1372: Longest ZigZag Path in a Binary Tree
·1 分鐘
LeetCode
Medium
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 1372 解題筆記:每個節點回傳兩個值:從這裡先往左、先往右的最長 zigzag;往左走接的是左小孩「先往右」的值
LeetCode 124: Binary Tree Maximum Path Sum
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 124 解題筆記:DFS 回傳往下的一條鏈,在每個節點用「左鏈 + 自己 + 右鏈」更新答案;負的鏈要丟掉
LeetCode 563: Binary Tree Tilt
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 563 解題筆記:後序回傳子樹的總和,每個節點的 tilt 是左右子樹總和的差,加進答案
LeetCode 543: Diameter of Binary Tree
·1 分鐘
LeetCode
Easy
Tree
Depth-First-Search
Binary-Tree
Dp-on-Trees
LeetCode 543 解題筆記:直徑可能不經過根;後序回傳高度,同時在每個節點用「左高 + 右高」更新答案;算的是邊數