↓快轉到主要內容

Array

LeetCode 2761: Prime Pairs With Target Sum
·1 分鐘
LeetCode Medium Math Number-Theory Sieve Enumeration Array
LeetCode 2761 解題筆記:篩出 < n 的質數,x 從小到大、只看到 n / 2,x 和 n - x 都是質數就是一對
LeetCode 2523: Closest Prime Numbers in Range
·1 分鐘
LeetCode Medium Math Number-Theory Sieve Array
LeetCode 2523 解題筆記:篩出範圍內的質數,相鄰的兩個質數才可能是最接近的;也可以從 left 往右試除,找到差是 2 的雙生質數就停
LeetCode 1998: GCD Sort of an Array
·2 分鐘
LeetCode Hard Math Number-Theory Union-Find Sieve Sorting Array
LeetCode 1998 解題筆記:同一個連通塊裡的數可以任意交換;用 SPF 把數字跟質因數合併,排序後每個位置的新舊數字在同一組就能排好
LeetCode 1001: Grid Illumination
·2 分鐘
LeetCode Hard Hash-Table Array
LeetCode 1001 解題筆記:列、欄、兩條對角線各開一個計數器(r - c、r + c),加上亮著的燈的集合;關燈時四個計數器都要減
LeetCode 4067: Longest Subarray With Restricted Pair Sums
·2 分鐘
LeetCode Medium Sliding-Window Hash-Table Array
LeetCode 4067 解題筆記:合法視窗的子陣列也合法,可以滑動;加入 x 時只要檢查跟 x 有關的三元組:x 當加數(x + y 在視窗裡)或 x 當和(x - y 在視窗裡)
LeetCode 622: Design Circular Queue
·1 分鐘
LeetCode Medium Queue Design Array
LeetCode 622 解題筆記:固定大小陣列加上 head 和 count,位置都對容量取模,空和滿用 count 判斷
LeetCode 2218: Maximum Value of K Coins From Piles
·1 分鐘
LeetCode Hard Dynamic-Programming Knapsack Prefix-Sum Array
LeetCode 2218 解題筆記:每一堆只能從上面拿,拿 x 個的價值是前綴和;分組背包,dp[j] = 前幾堆總共拿 j 個的最大價值,每一堆枚舉拿幾個
LeetCode 1246: Palindrome Removal
·1 分鐘
LeetCode Hard Dynamic-Programming Interval-Dp Array
LeetCode 1246 解題筆記:區間 DP;arr[i] 自己刪、兩端相同時跟裡面一起刪,或切成兩段,三種取最小
LeetCode 1425: Constrained Subsequence Sum
·1 分鐘
LeetCode Hard Sliding-Window Dynamic-Programming Monotonic-Queue Heap Queue Array
LeetCode 1425 解題筆記:dp[i] = nums[i] + max(0, 前 k 個 dp 的最大值);前 k 個 dp 的最大值是滑動視窗最大值,用單調佇列 O(1) 取得
LeetCode 2963: Count the Number of Good Partitions
·1 分鐘
LeetCode Hard Math Combinatorics Hash-Table Array
LeetCode 2963 解題筆記:同一個數的所有出現位置必須在同一段,用最後出現位置把陣列切成 b 個不可再分的區塊;區塊之間可切可不切,答案是 2^(b-1)
LeetCode 2163: Minimum Difference in Sums After Removal of Elements
·2 分鐘
LeetCode Hard Dynamic-Programming Heap Array
LeetCode 2163 解題筆記:枚舉第一段和第二段的分界 k;左邊 nums[:k] 選 n 個最小的(最大堆維護),右邊 nums[k:] 選 n 個最大的(最小堆維護),前後綴各掃一次
LeetCode 1627: Graph Connectivity With Threshold
·1 分鐘
LeetCode Hard Math Number-Theory Union-Find Array
LeetCode 1627 解題筆記:不用兩兩算 GCD;對每個 z > threshold,把 z 的所有倍數連起來,總共 O(n log n) 次合併