Common enough that a gap here costs you rounds.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The problems behind array.md's own templates (index as hash, the one-pass running state), each filed under the card it reduces to; an array-tagged problem whose home is another sheet is a one-row pointer here.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The worked-solution archive behind matrix.md: seventeen problems grouped by the geometry or technique each one turns on — traversal order, in-place transformation, staircase search, grid search, 2D DP, and row-pair compression.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The 2D grid as its own topic — traversal geometry (spiral, diagonal, rotate, transpose), in-place marking, and index↔coordinate arithmetic.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The k-sum family specifically — 2Sum through kSum, the sort-then-converge recursion, and duplicate handling.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The palindrome family — expand-from-center, two-pointer verification, palindromic DP, and Manacher — and how to tell which a problem needs.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
Prefix / running sums — subarray sums, 2D prefix sums, prefix + hashmap counting.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The six prefix-sum templates that borrow another structure or another identity: the complement trick, the monotonic deque for arrays with negatives, row-pair compression for 2D, prefix XOR, the sparse difference array via a hash map, and the prefix-sum-on-a-tree counting map.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The sliding-window techniques a first pass should skip: the at-most-K-distinct family, exactly-K counting with a forbidden-element reset or in one pass, several non-overlapping windows at once, and windows whose key is a word rather than a character; the seven must-know templates stay in the main sheet, and the advanced shapes another sheet owns (deque extrema, complement windows, value buckets) are pointers here.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The worked sliding-window LeetCode problems that are not a template's anchor, one problem card each, filed under the template in the main sheet it reduces to; the templates, the concepts and the decision tables stay in the main sliding-window sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The worked string LeetCode problems that are not a template's anchor, each filed as a problem card under the string.md template it reduces to; the concepts, the pattern cards and the anchor problems themselves stay in the main string sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Arrays & Strings
The worked two-pointer LeetCode catalogue, one canonical solution per problem, grouped by the template in the main two-pointer sheet that it reduces to; the concepts, pointer types and templates themselves stay in the main two-pointer sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
The hash-map family's classic LC problems as problem cards, filed under the hash_map.md template each one reduces to; it has no templates of its own.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
Cross-collection chooser — which Java / Python container for which job, and the API gotchas of each.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
Next greater / previous smaller / span / histogram problems — the stack stays sorted so each element is pushed and popped once.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
FIFO fundamentals — BFS queues, deques, circular buffers, queue-backed designs.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
The stack-based expression family: the calculators (LC 224 / 227 / 772), decode-string style nesting (LC 394) and postfix / sequential-operand evaluation (LC 150, 682), with the pre_op delay-insert trick that makes operator precedence fall out of a plain stack.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Hashing, Stacks & Queues
The problem set behind stack.md: the stack problems that are not a template's anchor, each as a problem card under the template it reduces to; the monotonic problems are worked in monotonic_stack.md and only pointed to here.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Linked Lists
The problem set behind linked_list.md: each problem filed under the core template it reduces to, as a problem card that names the one step it adds; the templates themselves, and their anchor problems, live in the core sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Linked Lists
Two pointers over linked-list nodes — fast/slow cycle detection, middle finding, k-th from end, and offset pointers. No array indexing.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
The heap patterns a first pass should skip: lazy deletion, sweep-line "alive" heaps, regret greedy, resource-pool allocators, grid best-first search, and the structures beyond a plain binary heap; the six must-know templates stay in the parent sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
The BST material a first pass should skip: the lazy O(h)-space iterator, in-order drop detection for a corrupted BST, order-statistic (rank) queries, and the construction variants beyond a sorted array — each with when the simpler bst.md card is enough.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
The BST problems that add one step to a template in bst.md, each worked once as a problem card and filed under the card it reduces to; problems a template or an advanced card already works are listed here as pointers, not re-solved.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
The problem set for the heap / priority-queue family: each problem filed under the heap.md template it reduces to, with the one step it adds; the templates themselves, and the problems that need an advanced technique, live in the sibling sheets.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
Building a binary tree from something flat: two traversal arrays, an index range over one array, or a parenthesised / infix string — the inverse direction of every tree problem that only reads a tree.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
An index from every tree pattern to the one card that teaches it, plus the traversal forms no core sheet spells out: iterative pre- and post-order, zigzag levels, the bottom-left value and vertical order.
drill 0/8 ok · next: LC 144, LC 145, LC 103
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
Turning a tree into a string and back — subtree fingerprints for identity and duplicate detection, and the full encode/decode codec family (parenthesis, comma plus null marker, depth prefix).
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Trees & Heaps
The prefix tree — insert/search/startsWith, node layout choices, and the problems where sharing prefixes is the whole trick (autocomplete, word search, XOR trie).
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Graphs
The worked-solution archive behind Dijkstra.md: eleven problems in both languages, grouped by the shape of the search state, since that is what decides whether you need dist[], a second state dimension, or a plain visited[].
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Graphs
Single-source shortest path with non-negative weights, via a priority queue.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Graphs
Ordering a DAG — Kahn's BFS, DFS post-order, cycle detection, and the scheduling problems built on them.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Graphs
The problem set behind topology_sorting.md: one problem card per problem, grouped under the template each one reduces to, with no template or theory material of its own.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Graphs
Disjoint set union — connectivity, component counting, cycle detection in undirected graphs, with path compression and union by rank.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Search & Sort
The problem set for binary_search.md: each problem filed under the index-space template it reduces to, as one problem card with one canonical solution, plus the few answer-space problems that are not worked on binary_search_on_answer.md.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Search & Sort
The card-game algorithm behind O(N log N) longest increasing subsequence: the piles, the tails array they collapse to, recovering the subsequence itself, and the problem family that reduces to it.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Search & Sort
Partition-based selection: finding the kth largest, kth smallest or k closest element in O(n) average time by keeping only one side of a quicksort partition, with the partition schemes it can use and the median-of-medians pivot that makes the worst case linear. It owns LC 215's quickselect answer; the heap answer is in heap.md.
drill 3/9 ok · 1 again · next: LC 347, LC 1985, LC 1337
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Search & Sort
Sorting algorithms and sort-adjacent techniques — comparison sorts and their stability, counting/bucket/radix, quickselect, custom comparators, and cyclic sort.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
Hard-tier backtracking that carries extra state through the recursion — a Trie node, the previous operand, a deletion budget — plus constraint propagation, memoised search and the generic partitioning templates a first pass should skip; none of the must-know shapes are repeated here.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
The DP appendix — techniques a first pass should skip: game-theory / minimax DP, tree and re-rooting DP, interval and string DP deep dives, probability and step-indexed counting DP, monotonic-queue and stack-carried DP, and the long-form derivations trimmed out of the main sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
Why a bottom-up DP's loop nesting and direction are forced by its own transition, the four ways a wrong order fails, and LC 139 Word Break worked in five orders — including the one that looks right, passes "leetcode", and silently fails the problem's own Example 2.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
Template index — one short section per classic DP pattern (Kadane, LIS, MCM, LCS, knapsack, state machine, grid, bitmask, digit, tree DP, regex, interval scheduling, split, memoised DAG).
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
Recursion as a mechanism — base case, state passed down vs returned up, call-stack cost, and converting to iteration. The pattern families that use recursion each have their own file.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
The mechanical pipeline: recursion → memoisation → tabulation → space-optimised, applied to one problem at a time.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Dynamic Programming & Recursion
DP over one or two strings: the dp[m+1][n+1] two-sequence grid, prefix-based (1-indexed) table design, and the worked patterns for LCS, edit distance, interleaving and wildcard/parenthesis matching.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Greedy & Intervals
Taking the locally best choice and the exchange argument that proves it safe — interval scheduling, jump games, task assignment — plus how to spot when greedy fails and DP is required.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Greedy & Intervals
Sort-then-merge interval problems — merge, insert, count overlaps, minimum removals.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Design & Simulation
The worked "design a X" problems behind design.md, one problem card each, filed under the structure pair (design.md's patterns) that each one forces.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Design & Simulation
LC "design a X" problems — reading the required operations off the problem and picking the structure combination that makes every one of them O(1) or O(log n); the worked designs themselves live in the examples sheet.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Design & Simulation
The low-level-design round — class modelling, SOLID, and the design patterns interviewers actually ask for (strategy, observer, factory, state), with worked designs.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
The Java library APIs for holding data: arrays and 2D arrays, lists, maps, queues, heaps, stacks and pairs — how to initialise, copy, iterate and index each one, and the traps in doing so.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
Java String and StringBuilder work — converting to and from char[], slicing, parsing, building and mutating — together with everything comparator-shaped: array, collection and map sorting, and the return-value rules that decide the order.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
The Java language semantics that decide whether a correct algorithm produces a correct answer: characters as integers, value vs reference, and integer arithmetic. The library APIs live in two companion sheets.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
The two things that produce most wrong answers in Python solutions that are otherwise correct: where an insertion actually lands, and whether an index range means a count or a distance.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
The library-by-library reference: heapq, sortedcontainers, the built-in sort (sorted / list.sort), bisect, collections, itertools, functools and datetime — the calls, their complexity, and the idiom each one exists to replace.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Language Toolkit
The Python language idioms that come up while solving problems — copying, string handling, sort keys, integer arithmetic, comprehensions and scope — grouped by what you are trying to do. The standard library, the index arithmetic and the cost of each operation have their own sheets.
★★★★☆Priority 4 of 5 — High value — a gap here costs you rounds Interview Meta
Walkthroughs — how to argue the complexity of an actual LC solution, one classic per technique.