Array
LeetCode 3804: Number of Centered Subarrays
·1 min
LeetCode
Medium
Hash-Table
Enumeration
Array
LeetCode 3804 note: fix the left end and extend right, adding to the sum and to a set; count the subarray when the sum is in the set
LeetCode 2831: Find the Longest Equal Subarray
·2 mins
LeetCode
Medium
Sliding-Window
Hash-Table
Binary-Search
Array
LeetCode 2831 note: list the positions of each value and slide a window over that list; the deletions needed are the span of positions minus the number of copies
LeetCode 2779: Maximum Beauty of an Array After Applying Operation
·2 mins
LeetCode
Medium
Sliding-Window
Sorting
Binary-Search
Array
LeetCode 2779 note: each number can become anything in [x - k, x + k], so a group can become one value ⇔ max - min <= 2k; sort and find the longest such window
LeetCode 2271: Maximum White Tiles Covered by a Carpet
·2 mins
LeetCode
Medium
Sliding-Window
Greedy
Sorting
Prefix-Sum
Binary-Search
Array
LeetCode 2271 note: starting the carpet at some segment’s start is never worse; after sorting, two pointers sum the fully covered segments and count the last one partially
LeetCode 1838: Frequency of the Most Frequent Element
·2 mins
LeetCode
Medium
Sliding-Window
Sorting
Greedy
Prefix-Sum
Binary-Search
Array
LeetCode 1838 note: after sorting, raising the whole window to nums[right] costs nums[right] × length − window sum; shrink the left while that exceeds k
LeetCode 1458: Max Dot Product of Two Subsequences
·2 mins
LeetCode
Hard
Dynamic-Programming
Longest-Common-Subsequence
Array
LeetCode 1458 note: a two-prefix DP; dp[i][j] either pairs nums1[i] with nums2[j] (extending dp[i-1][j-1] or starting fresh) or skips one of them
LeetCode 3634: Minimum Removals to Balance Array
·2 mins
LeetCode
Medium
Sliding-Window
Sorting
Binary-Search
Array
LeetCode 3634 note: after sorting, what remains is always a contiguous block; for each minimum nums[left], a right-only pointer finds how far it can extend, and everything outside is removed
LeetCode 2958: Length of Longest Subarray With at Most K Frequency
·1 min
LeetCode
Medium
Sliding-Window
Hash-Table
Array
LeetCode 2958 note: a longest-window slide that shrinks the left whenever the newly added number appears more than k times
LeetCode 220: Contains Duplicate III
·3 mins
LeetCode
Hard
Sliding-Window
Bucket-Sort
Ordered-Set
Sorting
Array
LeetCode 220 note: with bucket size valueDiff + 1, two numbers in one bucket always qualify, so only the two neighboring buckets need checking; the window keeps the latest indexDiff numbers, so each bucket holds at most one
LeetCode 1975: Maximum Matrix Sum
·2 mins
LeetCode
Medium
Greedy
Matrix
Array
LeetCode 1975 note: minus signs can travel anywhere in pairs but the parity of the negative count never changes; with an odd count, leave one on the smallest absolute value
LeetCode 1306: Jump Game III
·2 mins
LeetCode
Medium
Bfs
Dfs
Graph
Array
LeetCode 1306 note: indices are nodes and the two jumps are edges; BFS or DFS decides whether a zero is reachable
LeetCode 2200: Find All K-Distant Indices in an Array
·2 mins
LeetCode
Easy
Two-Pointers
Array
LeetCode 2200 note: extend each key k positions both ways, and keep a pointer to how far output has gone so overlapping ranges are not emitted twice