↓快轉到主要內容

Array

LeetCode 3835: Count Subarrays With Cost Less Than or Equal to K
·1 分鐘
LeetCode Medium Sliding-Window Monotonic-Queue Queue Array
LeetCode 3835 解題筆記:花費 = (最大 - 最小) × 長度,視窗變大只會變貴,所以可以滑動視窗數子陣列;視窗最大、最小值用兩個單調佇列維護
LeetCode 3834: Merge Adjacent Equal Elements
·1 分鐘
LeetCode Medium Stack Simulation Array
LeetCode 3834 解題筆記:stack 模擬,新元素跟頂端相同就合併,合併後可能還要繼續跟新的頂端合併
LeetCode 3833: Count Dominant Indices
·1 分鐘
LeetCode Easy Array Enumeration
LeetCode 3833 解題筆記:從右往左維護後綴總和,比較 nums[i] × 右邊個數 > 右邊總和,不用浮點數也不會包含自己
LeetCode 3379: Transformed Array
·1 分鐘
LeetCode Easy Array Simulation
LeetCode 3379 解題筆記:往右或往左走 nums[i] 步都可以寫成 nums[(i + nums[i]) % n];Python 的 % 對負數也回傳非負值
LeetCode 244: Shortest Word Distance II
·1 分鐘
LeetCode Medium Two-Pointers Design Hash-Table String Array
LeetCode 244 解題筆記:預處理每個字的出現位置(天然排序),查詢時對兩個位置列表做雙指針合併,每次移動比較小的那個
LeetCode 986: Interval List Intersections
·1 分鐘
LeetCode Medium Two-Pointers Sweep-Line Array
LeetCode 986 解題筆記:兩個指針各指一個區間,交集是 [max(起點), min(終點)];結束得比較早的那個區間不會再跟別人相交,把它的指針往前
LeetCode 3828: Final Element After Subarray Deletions
·1 分鐘
LeetCode Medium Math Brainteaser Game-Theory Array
LeetCode 3828 解題筆記:Alice 第一步就能只留下頭或尾,所以至少拿到 max(頭, 尾);Bob 每次也能只留下目前的頭或尾,而 Alice 的一次刪除最多改變其中一端,所以答案就是 max(頭, 尾)
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 2570: Merge Two 2D Arrays by Summing Values
·1 分鐘
LeetCode Easy Two-Pointers Array
LeetCode 2570 解題筆記:兩個依 id 排序的陣列,用合併兩個有序序列的雙指針,id 相同就相加