Coding interview problems by topic

150 original problems in 15 topics. Every expected answer comes from running a reference solution, checked against a second solution and a brute force. Read a topic's guide, then practice a problem with an AI interviewer that asks follow-ups and scores you.

Learn hash-map lookups, frequency counting, prefix-state hashing, and canonical keys for efficient array algorithms.

Learn fixed and variable sliding windows, frequency tracking, minimum-cover windows, and monotonic deques, with Python templates and complexity.

Learn stack fundamentals, bracket matching, undo and redo, collision simulation, monotonic stacks, and greedy subsequence construction.

Learn interval merging, intersection, subtraction, endpoint sweeps, resource allocation, and heap-based scheduling and containment queries.

Learn tree traversal, path tracking, subtree dynamic programming, and rerooting, with Python patterns and time and space analysis.

Learn opposing, merging, and same-direction two-pointer patterns, with Python templates, correctness reasoning, and complexity analysis.

Learn linked-list traversal, pointer rewiring, reversal, fast and slow pointers, stable partitioning, and merge sort with Python examples.

Learn trie insertion, prefix matching, subtree counts, string segmentation, and binary tries for maximum-XOR and rank queries.

Learn min-heaps and max-heaps, priority updates, top-k selection, multiway merging, and greedy algorithms with Python examples.

Learn backtracking for subsets, permutations, partitions, and constrained search, with pruning, state restoration, and complexity analysis.

Learn graph representations, BFS, DFS, shortest paths, topological sorting, union-find, and spanning trees for coding interviews.

Learn dynamic programming through memoization, sequence states, knapsack, interval and subset DP, with clear transitions and complexity analysis.

Learn 2-D dynamic programming through grid paths, sequence alignment, and interval states, with transitions, reconstruction, and complexity.

Learn when greedy algorithms work, how to prove local choices, and the main sorting, interval, construction, and heap-based patterns.

Practice them in a real interview setting

Talk through your approach, run your code against hidden tests, and get a scored debrief.

Open the library in the app