Divide-and-Conquer
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;新節點先接左邊
Merge Sort 與分治計數
·4 分鐘
演算法
Merge-Sort
Divide-and-Conquer
Sorting
Counting
Merge sort 模板、逆序對類計數題的計數位置、linked list 版本與常見錯誤
LeetCode 23: Merge k Sorted Lists
·3 分鐘
LeetCode
Hard
Linked-List
Heap
Merge-Sort
Divide-and-Conquer
LeetCode 23 解題筆記:heap 只放 k 個開頭,以及分治兩兩合併
LeetCode 493: Reverse Pairs
·3 分鐘
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Two-Pointers
Counting
LeetCode 493 解題筆記:計數條件和排序條件不同時,先掃再合併
LeetCode 2426: Number of Pairs Satisfying Inequality
·2 分鐘
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Two-Pointers
Counting
LeetCode 2426 解題筆記:先化簡式子,再判斷符合的是前綴還是後綴
LeetCode LCR 170: 交易逆序對的總數
·2 分鐘
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Counting
LCR 170(劍指 Offer 51)解題筆記:merge 時順便數逆序對
LeetCode 912: Sort an Array
·2 分鐘
LeetCode
Medium
Sorting
Merge-Sort
Divide-and-Conquer
LeetCode 912 解題筆記:手寫 merge sort,以及兩次寫錯的地方
LeetCode 315: Count of Smaller Numbers After Self
·2 分鐘
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Binary-Indexed-Tree
Counting
LeetCode 315 解題筆記:帶 index 的 merge sort,以及 BIT 解法
LeetCode 327: Count of Range Sum
·2 分鐘
LeetCode
Hard
Merge-Sort
Divide-and-Conquer
Prefix-Sum
Binary-Indexed-Tree
LeetCode 327 解題筆記:前綴和 + merge sort 計數,兩個指針卡出區間;重打十幾次的練習紀錄
LeetCode 395: Longest Substring with At Least K Repeating Characters
·2 分鐘
LeetCode
Medium
Sliding-Window
Divide-and-Conquer
Hash-Table
String
LeetCode 395 解題筆記:「每個字元至少 k 次」不單調,不能直接滑動;分治法用出現不到 k 次的字元切開,或枚舉視窗裡有幾種字元,固定種類數後就能滑動
LeetCode 1763: Longest Nice Substring
·1 分鐘
LeetCode
Easy
Sliding-Window
Divide-and-Conquer
Hash-Table
String
Bit-Manipulation
LeetCode 1763 解題筆記:沒有大小寫配對的字元一定不在答案裡,用它切開字串遞迴;長度相同時取左邊的
LeetCode 109: Convert Sorted List to Binary Search Tree
·1 分鐘
LeetCode
Medium
Linked-List
Divide-and-Conquer
Tree
Binary-Search-Tree
LeetCode 109 解題筆記:快慢指針找中點當根,左右兩半遞迴建樹;高度自然平衡