Medium
LeetCode 148: Sort List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
Divide-and-Conquer
Sorting
LeetCode 148 解題筆記:用快慢指針切成兩半,遞迴排序後合併;O(n log n),不需要額外陣列
LeetCode 473: Matchsticks to Square
·1 分鐘
LeetCode
Medium
Array
Dynamic-Programming
Backtracking
Bit-Manipulation
LeetCode 473 解題筆記:總和要能被 4 整除;由大到小把每根火柴放進四個邊之一,超過邊長或跟前一個邊長度相同就跳過
LeetCode 435: Non-overlapping Intervals
·1 分鐘
LeetCode
Medium
Array
Dynamic-Programming
Greedy
Sorting
LeetCode 435 解題筆記:最少刪幾個 = 總數減掉最多能保留幾個;按右端點排序,貪心保留結束最早的
LeetCode 397: Integer Replacement
·1 分鐘
LeetCode
Medium
Dynamic-Programming
Greedy
Bit-Manipulation
Memoization
LeetCode 397 解題筆記:偶數一定除以 2;奇數選 +1 或 -1,用記憶化遞迴;n 很大不能開 n 大小的陣列
LeetCode 396: Rotate Function
·1 分鐘
LeetCode
Medium
Array
Math
Dynamic-Programming
LeetCode 396 解題筆記:F(k) 和 F(k - 1) 只差一個公式:F(k) = F(k - 1) + sum - n × 被移到最前面的那個數
LeetCode 337: House Robber III
·1 分鐘
LeetCode
Medium
Dynamic-Programming
Tree
Depth-First-Search
Binary-Tree
LeetCode 337 解題筆記:樹上 DP,每個節點回傳(搶它、不搶它)的最大值;不是一層一層交錯搶
LeetCode 313: Super Ugly Number
·1 分鐘
LeetCode
Medium
Array
Math
Dynamic-Programming
LeetCode 313 解題筆記:LC 264 的推廣,每個質數一個指針;用 heap 的話要避免同一個數被推進去很多次
LeetCode 50: Pow(x, n)
·1 分鐘
LeetCode
Medium
Math
Recursion
LeetCode 50 解題筆記:快速冪,x^n = (x²)^(n/2),n 是奇數時多乘一個 x;n 是負數時算 1 / x^(-n)
LeetCode 264: Ugly Number II
·1 分鐘
LeetCode
Medium
Hash-Table
Math
Dynamic-Programming
Heap-Priority-Queue
LeetCode 264 解題筆記:三個指針分別指向下一個要乘 2、3、5 的醜數,每次取最小的,相等的指針都要前進
LeetCode 187: Repeated DNA Sequences
·1 分鐘
LeetCode
Medium
Hash-Table
String
Bit-Manipulation
Sliding-Window
LeetCode 187 解題筆記:把每個長度 10 的子字串丟進雜湊表計數,出現超過一次的就是答案
LeetCode 142: Linked List Cycle II
·1 分鐘
LeetCode
Medium
Hash-Table
Linked-List
Two-Pointers
Floyds-Cycle-Finding-Algorithm
LeetCode 142 解題筆記:快慢指針相遇後,一個回到 head,兩個都一次一步,再相遇的地方就是環的入口
LeetCode 227: Basic Calculator II
·1 分鐘
LeetCode
Medium
Math
String
Stack
LeetCode 227 解題筆記:先把數字讀完整,遇到運算子時處理上一個運算子:+ - 把數放進 stack(減號放負數),* / 直接跟頂端算