Medium
LeetCode 1448: Count Good Nodes in Binary Tree
·1 分鐘
LeetCode
Medium
Tree
Depth-First-Search
Breadth-First-Search
Binary-Tree
LeetCode 1448 解題筆記:DFS 往下傳路徑上的最大值,節點的值大於等於它就是好節點
LeetCode 143: Reorder List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
Stack
Recursion
LeetCode 143 解題筆記:找中點、反轉後半段、兩條交錯合併;前半段的尾巴要切斷
LeetCode 138: Copy List with Random Pointer
·1 分鐘
LeetCode
Medium
Hash-Table
Linked-List
LeetCode 138 解題筆記:第一次走過建立舊節點到新節點的字典,第二次接上 next 和 random;字典裡先放 None -> None
LeetCode 105: Construct Binary Tree from Preorder and Inorder Traversal
·2 分鐘
LeetCode
Medium
Array
Hash-Table
Divide-and-Conquer
Tree
LeetCode 105 解題筆記:前序的第一個是根,在中序裡找到根的位置就知道左子樹有幾個節點;用字典查位置,O(n)
LeetCode 102: Binary Tree Level Order Traversal
·1 分鐘
LeetCode
Medium
Tree
Breadth-First-Search
Binary-Tree
LeetCode 102 解題筆記:BFS 一次處理一整層,用目前這層的節點產生下一層;空樹回傳空 list
LeetCode 981: Time Based Key-Value Store
·2 分鐘
LeetCode
Medium
Hash-Table
String
Binary-Search
Design
LeetCode 981 解題筆記:每個 key 存一個 (timestamp, value) 的 list,timestamp 是遞增的;get 時二分找最後一個 timestamp <= 查詢時間的
LeetCode 875: Koko Eating Bananas
·1 分鐘
LeetCode
Medium
Array
Binary-Search
LeetCode 875 解題筆記:對速度二分,找最小的 k 讓總時數 <= h;時數剛好等於 h 時還要繼續往左找
LeetCode 424: Longest Repeating Character Replacement
·1 分鐘
LeetCode
Medium
Hash-Table
String
Sliding-Window
LeetCode 424 解題筆記:可變長度滑動視窗,視窗長度減掉最多的字元次數就是要替換的數量,超過 k 就縮左邊
LeetCode 153: Find Minimum in Rotated Sorted Array
·1 分鐘
LeetCode
Medium
Array
Binary-Search
LeetCode 153 解題筆記:拿 mid 跟右端比:nums[mid] > nums[r] 代表最小值在右邊,否則 mid 可能就是最小值,r = mid
LeetCode 347: Top K Frequent Elements
·1 分鐘
LeetCode
Medium
Array
Hash-Table
Divide-and-Conquer
Sorting
LeetCode 347 解題筆記:先計數,再用大小為 k 的 heap 或 bucket sort(次數當 index)取出次數最多的 k 個
LeetCode 238: Product of Array Except Self
·1 分鐘
LeetCode
Medium
Array
Prefix-Sum
LeetCode 238 解題筆記:答案是左邊所有數的乘積乘上右邊所有數的乘積,兩次掃描,不用除法
LeetCode 167: Two Sum II - Input Array Is Sorted
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Binary-Search
LeetCode 167 解題筆記:已排序,左右指針往中間走:和太大右指針左移,太小左指針右移;回傳的 index 從 1 開始