Medium
LeetCode 777: Swap Adjacent in LR String
·1 分鐘
LeetCode
Medium
Two-Pointers
String
LeetCode 777 解題筆記:XL→LX 是 L 往左、RX→XR 是 R 往右;跳過 X 後順序要一樣,L 只能往左、R 只能往右
LeetCode 3829: Design Ride Sharing System
·1 分鐘
LeetCode
Medium
Queue
Design
Hash-Map
Lazy-Deletion
LeetCode 3829 解題筆記:乘客和司機各一個 queue,取消只記在 set 裡,配對前再把隊頭已取消的乘客丟掉
LeetCode 3828: Final Element After Subarray Deletions
·1 分鐘
LeetCode
Medium
Math
Brainteaser
Game-Theory
Array
LeetCode 3828 解題筆記:Alice 第一步就能只留下頭或尾,所以至少拿到 max(頭, 尾);Bob 每次也能只留下目前的頭或尾,而 Alice 的一次刪除最多改變其中一端,所以答案就是 max(頭, 尾)
LeetCode 2337: Move Pieces to Obtain a String
·1 分鐘
LeetCode
Medium
Two-Pointers
String
LeetCode 2337 解題筆記:跳過空格後兩邊的棋子順序必須一樣;L 只能往左、R 只能往右,所以每顆 L 在 start 的位置要 >= target,R 要 <=
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 3824: Minimum K to Reduce Array Within Limit
·1 分鐘
LeetCode
Medium
Binary-Search
Math
LeetCode 3824 解題筆記:對 k 二分,條件是單調的;上界至少要到 n,因為操作次數至少是 n
LeetCode 581: Shortest Unsorted Continuous Subarray
·1 分鐘
LeetCode
Medium
Two-Pointers
Greedy
Sorting
Array
Monotonic-Stack
LeetCode 581 解題筆記:從左往右記最大值,最後一個比最大值小的位置是右界;從右往左記最小值,最後一個比最小值大的位置是左界
LeetCode 3555: Smallest Subarray to Sort in Every Sliding Window
·1 分鐘
LeetCode
Medium
Two-Pointers
Greedy
Sorting
Array
Monotonic-Stack
LeetCode 3555 解題筆記:每個長度 k 的視窗都是一次 LeetCode 581;n 只有 1000,對每個視窗跑 O(k) 的兩次掃描即可
LeetCode 3323: Minimize Connected Groups by Inserting Interval
·1 分鐘
LeetCode
Medium
Sliding-Window
Sorting
Binary-Search
Array
LeetCode 3323 解題筆記:先合併區間;新區間能把第 l 到 r 組連起來 ⇔ 第 r 組的起點 − 第 l 組的終點 <= k;滑動視窗找一次能連起來最多組
LeetCode 1989: Maximum Number of People That Can Be Caught in Tag
·1 分鐘
LeetCode
Medium
Two-Pointers
Greedy
Array
LeetCode 1989 解題筆記:鬼從左到右,每個鬼抓範圍內最左邊、還沒被抓的人;用一個只往右走的指針指向下一個候選人
LeetCode 658: Find K Closest Elements
·2 分鐘
LeetCode
Medium
Two-Pointers
Binary-Search
Sliding-Window
LeetCode 658 解題筆記:雙指針從兩端縮成長度 k,或二分搜尋窗口的起點