Math
LeetCode 1627: Graph Connectivity With Threshold
·1 分鐘
LeetCode
Hard
Math
Number-Theory
Union-Find
Array
LeetCode 1627 解題筆記:不用兩兩算 GCD;對每個 z > threshold,把 z 的所有倍數連起來,總共 O(n log n) 次合併
LeetCode 3895: Count Digit Appearances
·1 分鐘
LeetCode
Medium
Math
Array
LeetCode 3895 解題筆記:把每個數字轉成字串,數 digit 出現的次數加總
LeetCode 2912: Number of Ways to Reach Destination in the Grid
·2 分鐘
LeetCode
Hard
Dynamic-Programming
State-Machine
Math
Combinatorics
LeetCode 2912 解題筆記:格子太多,但相對終點只分四類:終點、同一列、同一行、都不同;每一類的總方法數一起轉移,O(k)
LeetCode 60: Permutation Sequence
·1 分鐘
LeetCode
Hard
Math
Combinatorics
Recursion
LeetCode 60 解題筆記:k 改成 0-indexed,第一位決定之後剩下 (n-1)! 種排法;k // (n-1)! 就是第一位在剩下的數字裡排第幾,取出後繼續處理下一位
LeetCode 902: Numbers At Most N Given Digit Set
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Digit-Dp
Math
Binary-Search
String
LeetCode 902 解題筆記:數位 DP,狀態是 (pos, tight, started);還沒開始時可以跳過這一位,代表位數比 n 少的數
LeetCode 3984: Divisible Game
·2 分鐘
LeetCode
Medium
Dynamic-Programming
Kadane
Math
Number-Theory
Enumeration
LeetCode 3984 解題筆記:k 是合數時,換成它的質因數只會更好(能整除的更多、k 更小),所以只要試每個數的質因數加上 2;每個候選 k 跑一次 Kadane
LeetCode 3959: Check Good Integer
·1 分鐘
LeetCode
Easy
Math
Simulation
LeetCode 3959 解題筆記:累積位數平方和減位數和;每個位數貢獻 d² − d ≥ 0,差距只增不減,所以達到 50 就能提早回傳
LeetCode 3932: Count K-th Roots in a Range
·2 分鐘
LeetCode
Medium
Binary-Search
Math
LeetCode 3932 解題筆記:答案是 floor(r^(1/k)) - floor((l-1)^(1/k)),開根號用整數二分避免浮點誤差,0 也要算
LeetCode 3918: Sum of Primes Between Number and Its Reverse
·1 分鐘
LeetCode
Medium
Math
Number-Theory
LeetCode 3918 解題筆記:把 n 反轉,範圍是 [min, max],逐一試除判斷質數加總;判斷整除要用 %,不要比較 // 和 /
LeetCode 3908: Valid Digit Number
·1 分鐘
LeetCode
Easy
Math
LeetCode 3908 解題筆記:轉成字串,檢查包含 x 而且不是以 x 開頭
LeetCode 3899: Angles of a Triangle
·1 分鐘
LeetCode
Medium
Math
Geometry
LeetCode 3899 解題筆記:先用三角不等式判斷能不能組成三角形,再用餘弦定理算三個角,記得排序
LeetCode 3828: Final Element After Subarray Deletions
·1 分鐘
LeetCode
Medium
Math
Brainteaser
Game-Theory
Array
LeetCode 3828 解題筆記:Alice 第一步就能只留下頭或尾,所以至少拿到 max(頭, 尾);Bob 每次也能只留下目前的頭或尾,而 Alice 的一次刪除最多改變其中一端,所以答案就是 max(頭, 尾)