↓快轉到主要內容

Medium

LeetCode 3843: First Element with Unique Frequency
·1 分鐘
LeetCode Medium Hash-Table Counting Array
LeetCode 3843 解題筆記:數每個值的次數,再數「每種次數有幾個值」;由左到右第一個次數只屬於它自己的就是答案
LeetCode 3840: House Robber V
·1 分鐘
LeetCode Medium Dynamic-Programming Array
LeetCode 3840 解題筆記:只有相鄰而且同色才衝突;顏色不同直接拿,同色時才做打家劫舍的取捨
LeetCode 3839: Number of Prefix Connected Groups
·1 分鐘
LeetCode Medium Hash-Table String Counting
LeetCode 3839 解題筆記:前 k 個字元相同的字互相連通,用 word[:k] 當 key 計數;長度不到 k 的字要排除
LeetCode 3719: Longest Balanced Subarray I
·1 分鐘
LeetCode Medium Hash-Table Prefix-Sum Segment-Tree Array
LeetCode 3719 解題筆記:n 只有 1500,固定左端點往右擴,用兩個集合增量維護不同的奇數和偶數
LeetCode 2838: Maximum Coins Heroes Can Collect
·1 分鐘
LeetCode Medium Binary-Search Prefix-Sum Sorting
LeetCode 2838 解題筆記:怪物依強度排序建金幣前綴和,每個英雄用 bisect_right 找能打贏的範圍
LeetCode 1570: Dot Product of Two Sparse Vectors
·1 分鐘
LeetCode Medium Two-Pointers Design Hash-Table Array
LeetCode 1570 解題筆記:只存非零的 (index, value),內積時用雙指針合併兩個依 index 排序的列表,index 相同才相乘
LeetCode 1229: Meeting Scheduler
·1 分鐘
LeetCode Medium Two-Pointers Sorting Array
LeetCode 1229 解題筆記:兩個人的時段各自排序後,跟 986 一樣用雙指針找交集;第一個長度夠的交集就是最早的時段
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 2054: Two Best Non-Overlapping Events
·1 分鐘
LeetCode Medium Dynamic-Programming Binary-Search Sorting Heap
LeetCode 2054 解題筆記:只能選兩個,所以對每個活動,加上「在它開始前就結束的活動裡價值最大的」;依結束時間排序,前綴最大值 + 二分搜尋
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(終點)];結束得比較早的那個區間不會再跟別人相交,把它的指針往前