Hard
LeetCode 2781: Length of the Longest Valid Substring
·2 分鐘
LeetCode
Hard
Sliding-Window
Hash-Table
String
Trie
LeetCode 2781 解題筆記:禁字最長只有 10,每個右端只檢查最後 10 個字元組成的後綴;找到禁字就把左端推到它後面,要找最短的那個(最靠右的起點)
LeetCode 2009: Minimum Number of Operations to Make Array Continuous
·1 分鐘
LeetCode
Hard
Sliding-Window
Hash-Table
Binary-Search
Array
LeetCode 2009 解題筆記:最後的陣列是長度 n 的連續整數;去重排序後,用滑動視窗找值域寬度 <= n - 1 的最多不同值,其他都要改
LeetCode 2106: Maximum Fruits Harvested After at Most K Steps
·1 分鐘
LeetCode
Hard
Sliding-Window
Prefix-Sum
Binary-Search
Array
LeetCode 2106 解題筆記:採到的一定是連續一段水果;走完 [L, R] 的最少步數是 (R - L) + min(|start - L|, |R - start|),在水果陣列上用滑動視窗
LeetCode 1458: Max Dot Product of Two Subsequences
·1 分鐘
LeetCode
Hard
Dynamic-Programming
Longest-Common-Subsequence
Array
LeetCode 1458 解題筆記:兩個前綴的 DP;dp[i][j] 可以配對 nums1[i]、nums2[j](接在 dp[i-1][j-1] 後面或自己開頭),或跳過其中一個
LeetCode 220: Contains Duplicate III
·2 分鐘
LeetCode
Hard
Sliding-Window
Bucket-Sort
Ordered-Set
Sorting
Array
LeetCode 220 解題筆記:桶大小設成 valueDiff + 1,同一個桶裡的兩個數一定符合;只要再看相鄰兩個桶。視窗只保留最近 indexDiff 個數,所以每個桶最多一個數
LeetCode 2953: Count Complete Substrings
·2 分鐘
LeetCode
Hard
Sliding-Window
Hash-Table
String
LeetCode 2953 解題筆記:先在相鄰字元差 > 2 的地方切段;每段枚舉有幾種字元 d,視窗長度固定是 d × k,維護「剛好出現 k 次的字元數」
LeetCode 2156: Find Substring With Given Hash Value
·1 分鐘
LeetCode
Hard
Sliding-Window
Rolling-Hash
String
LeetCode 2156 解題筆記:雜湊的第一個字元乘 p^0,從右往左滑動時只要乘 p 再加新字元、扣掉 p^k 倍的出去字元,不需要除法;modulo 不一定是質數,不能用模反元素
LeetCode 84: Largest Rectangle in Histogram
·1 分鐘
LeetCode
Daily
Hard
Array
Stack
Monotonic-Stack
Dynamic-Programming
Geometry
Histogram
使用單調堆疊解決直方圖中最大矩形面積問題
LeetCode 30: Substring with Concatenation of All Words
·2 分鐘
LeetCode
Daily
Hard
String
Sliding-Window
Two-Pointers
Hash-Map
Brute-Force
Frequency-Counting
三種作法:暴力、計數優化、偏移量滑動視窗。
LeetCode 2709: Greatest Common Divisor Traversal
·2 分鐘
LeetCode
Hard
Math
Number-Theory
Union-Find
Sieve
Gcd
Array
LeetCode 2709 解題筆記:任兩個 index 都能互通 ⇔ 全部在同一個連通塊;用 SPF 分解質因數,數字跟它的質因數在 Union-Find 裡合併;1 要特別處理
LeetCode 76: Minimum Window Substring
·1 分鐘
LeetCode
Daily
Hard
String
Sliding-Window
Variable-Window
Two-Pointers
Hash-Map
LeetCode 解題紀錄 - 可變大小滑動窗口與字符計數
LeetCode 135: Candy
·1 分鐘
LeetCode
Hard
Greedy
Array
LeetCode 135 解題筆記:左往右掃一次滿足左鄰居、右往左掃一次滿足右鄰居,每個人取兩者較大值