Two-Pointers
LeetCode 75: Sort Colors
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Sorting
Quicksort
LeetCode 75 解題筆記:荷蘭國旗:low 左邊都是 0、high 右邊都是 2;遇到 2 換到 high 之後不要前進,換過來的數還沒檢查
LeetCode 61: Rotate List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
LeetCode 61 解題筆記:先算長度並接成環,k %= n,從頭走 n - k - 1 步找到新的尾巴再斷開
LeetCode 31: Next Permutation
·2 分鐘
LeetCode
Medium
Array
Two-Pointers
LeetCode 31 解題筆記:從右邊找第一個下降的位置 i,跟右邊比它大的最小值交換,再把 i 之後反轉;比較時要包含等於
LeetCode 5: Longest Palindromic Substring
·1 分鐘
LeetCode
Medium
Two-Pointers
String
Dynamic-Programming
Manacher
LeetCode 5 解題筆記:中心擴展,每個位置當奇數和偶數長度的中心往外擴;區間 DP 的話 i 要從大到小
LeetCode 19: Remove Nth Node From End of List
·1 分鐘
LeetCode
Medium
Linked-List
Two-Pointers
LeetCode 19 解題筆記:從 dummy 出發,快指針先走 n + 1 步,再一起走到底,慢指針停在要刪的前一個
LeetCode 18: 4Sum
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Sorting
LeetCode 18 解題筆記:排序後兩層迴圈固定前兩個數,剩下用對撞指針;四個位置都要跳過相同的值
LeetCode 16: 3Sum Closest
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Sorting
LeetCode 16 解題筆記:排序後固定一個數,對撞指針找另外兩個;比較的是和跟 target 的距離 abs(sum - target)
LeetCode 15: 3Sum
·2 分鐘
LeetCode
Medium
Array
Two-Pointers
Sorting
LeetCode 15 解題筆記:排序後固定第一個數,剩下用對撞指針找兩數和;三個位置都要跳過相同的值,才不會有重複的組合
LeetCode 11: Container With Most Water
·1 分鐘
LeetCode
Medium
Array
Two-Pointers
Greedy
LeetCode 11 解題筆記:左右指針從兩端開始,每次移動比較矮的那一邊;移動高的那邊只會讓寬度變小、高度不會變高
LeetCode 1089: Duplicate Zeros
·1 分鐘
LeetCode
Easy
Array
Two-Pointers
LeetCode 1089 解題筆記:先數有幾個 0 決定每個數要往後移幾格,再從後往前搬,遇到 0 時把複製的那個 0 也寫進去
LeetCode 977: Squares of a Sorted Array
·1 分鐘
LeetCode
Easy
Array
Two-Pointers
Sorting
LeetCode 977 解題筆記:平方後最大的一定在兩端,左右指針比較兩端的平方,大的從結果的最後面往前填
LeetCode 942: DI String Match
·1 分鐘
LeetCode
Easy
Array
Two-Pointers
String
Greedy
LeetCode 942 解題筆記:兩個指標分別指向還沒用的最小值和最大值,遇到 I 放最小、遇到 D 放最大