↓快轉到主要內容

LeetCode

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 146: LRU Cache
·2 分鐘
LeetCode Medium Hash-Table Linked-List Design Doubly-Linked-List
LeetCode 146 解題筆記:雜湊表找節點、雙向鏈結串列維護使用順序;get 和更新既有的 key 都要移到最前面
LeetCode 968: Binary Tree Cameras
·1 分鐘
LeetCode Hard Dynamic-Programming Tree Depth-First-Search Binary-Tree Dp-on-Trees
LeetCode 968 解題筆記:後序貪心,每個節點三種狀態:有相機、被覆蓋、沒被覆蓋;有小孩沒被覆蓋才放相機,最後根沒被覆蓋要補一台
LeetCode 889: Construct Binary Tree from Preorder and Postorder Traversal
·1 分鐘
LeetCode Medium Array Hash-Table Divide-and-Conquer Tree Binary-Tree
LeetCode 889 解題筆記:stack 存目前這條路徑,堆頂等於 postorder 的下一個就代表子樹完成要 pop;新節點先接左邊
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 450: Delete Node in a BST
·1 分鐘
LeetCode Medium Tree Binary-Search-Tree Binary-Tree
LeetCode 450 解題筆記:找到節點後分三種情況:沒有小孩、一個小孩直接接上,兩個小孩用右子樹最小值替換再刪掉它
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 331: Verify Preorder Serialization of a Binary Tree
·1 分鐘
LeetCode Medium String Stack Tree Binary-Tree
LeetCode 331 解題筆記:數空位:一開始 1 個,每個節點用掉 1 個,非空節點再多出 2 個;中途不能變負,最後要剛好 0
LeetCode 297: Serialize and Deserialize Binary Tree
·1 分鐘
LeetCode Hard String Tree Depth-First-Search Breadth-First-Search Design Binary-Tree
LeetCode 297 解題筆記:前序遍歷加上空節點標記就能唯一還原樹;反序列化用迭代器依序取值