LeetCode
LeetCode 3827: Count Monobit Integers
·1 分鐘
LeetCode
Easy
Bit-Manipulation
Enumeration
LeetCode 3827 解題筆記:每一位都一樣的數只有 0 和 2^k - 1;個數就是 (n + 1).bit_length()
LeetCode 2337: Move Pieces to Obtain a String
·1 分鐘
LeetCode
Medium
Two-Pointers
String
LeetCode 2337 解題筆記:跳過空格後兩邊的棋子順序必須一樣;L 只能往左、R 只能往右,所以每顆 L 在 start 的位置要 >= target,R 要 <=
LeetCode 1537: Get the Maximum Score
·2 分鐘
LeetCode
Hard
Dynamic-Programming
Two-Pointers
Greedy
Array
LeetCode 1537 解題筆記:兩個排序陣列只在共同的值可以換路;雙指針合併,兩條路各自累加,遇到共同的值時兩邊都取較大的那個再加上它
LeetCode 809: Expressive Words
·2 分鐘
LeetCode
Medium
Two-Pointers
String
Array
LeetCode 809 解題筆記:兩個指針一段一段比對連續相同字元的長度;長度不同時,s 的那段必須至少 3 個且不少於 word;最後兩個字串都要剛好走完
LeetCode 442: Find All Duplicates in an Array
·1 分鐘
LeetCode
Medium
Hash-Table
Array
LeetCode 442 解題筆記:值在 1..n,用 nums[v-1] 的負號記錄 v 出現過;第二次遇到時它已經是負的
LeetCode 41: First Missing Positive
·2 分鐘
LeetCode
Hard
Hash-Table
Array
LeetCode 41 解題筆記:答案一定在 1..n+1;把不可能的值換成 n+1(不能用 0),用 nums[v-1] 的負號標記 v 出現過
LeetCode 3824: Minimum K to Reduce Array Within Limit
·1 分鐘
LeetCode
Medium
Binary-Search
Math
LeetCode 3824 解題筆記:對 k 二分,條件是單調的;上界至少要到 n,因為操作次數至少是 n
LeetCode 3823: Reverse Letters Then Special Characters in a String
·1 分鐘
LeetCode
Easy
Two-Pointers
String
LeetCode 3823 解題筆記:兩次對撞指針,第一次只交換字母,第二次只交換特殊字元
LeetCode 2570: Merge Two 2D Arrays by Summing Values
·1 分鐘
LeetCode
Easy
Two-Pointers
Array
LeetCode 2570 解題筆記:兩個依 id 排序的陣列,用合併兩個有序序列的雙指針,id 相同就相加
LeetCode 2540: Minimum Common Value
·1 分鐘
LeetCode
Easy
Two-Pointers
Array
LeetCode 2540 解題筆記:兩個排序好的陣列各一個指針,比較小的那邊往前,第一次相等就是答案
LeetCode 976: Largest Perimeter Triangle
·1 分鐘
LeetCode
Easy
Math
Greedy
Sorting
Geometry
Array
LeetCode 976 解題筆記:排序後,從最大的開始看連續的三條邊,a + b > c 第一次成立就是最大周長
LeetCode 581: Shortest Unsorted Continuous Subarray
·1 分鐘
LeetCode
Medium
Two-Pointers
Greedy
Sorting
Array
Monotonic-Stack
LeetCode 581 解題筆記:從左往右記最大值,最後一個比最大值小的位置是右界;從右往左記最小值,最後一個比最小值大的位置是左界