Every idea has a place.
Explore 227 connected concepts. Start with an available lesson, then try its practice on the roadmap. You can still practise topics whose lessons are coming soon.
Arrays, Strings & Pointer Scans
Contiguous memory, dynamic resizing, grids, two/three pointers, sliding windows, and prefix arrays.
- Big-O Growth & RAM Memory LayoutComing soon
- Static ArrayComing soon
- Dynamic ArrayComing soon
- String & Character SequencesComing soon
- Matrix & 2-D GridComing soon
- Two PointersComing soon
- Three Pointers & Dutch FlagComing soon
- Sliding WindowComing soon
- Prefix-Sum ArrayComing soon
- Difference ArrayComing soon
- 2-D Prefix (Summed-Area) TableComing soon
Linked Lists, Stacks & Queues
Pointer chains, LIFO/FIFO frontiers, ring buffers, monotonic stacks/deques, and composite stacks.
- Singly Linked ListComing soon
- Doubly Linked ListComing soon
- Circular Linked ListComing soon
- Fast & Slow Pointers (Floyd’s Tortoise & Hare)Coming soon
- Random-Pointer & Multilevel Linked ListsComing soon
- Stack (LIFO)Coming soon
- Min StackComing soon
- Monotonic StackComing soon
- Queue (FIFO)Coming soon
- Queue from Two StacksComing soon
- Ring Buffer (Circular Queue)Coming soon
- Deque (Double-Ended Queue)Coming soon
- Monotonic DequeComing soon
Bitsets, Hashing, Maps & Sets
Bitwise masks, collision buckets, hash maps/sets, counters, multisets, and O(1) randomized containers.
- Bitset & Bitwise OperationsComing soon
- Direct-Address Table & Frequency ArrayComing soon
- Hash Functions & Hash TablesComing soon
- Hash Map (Dictionary)Coming soon
- Hash SetComing soon
- Frequency Map / CounterComing soon
- Bucket ArrayComing soon
- Multiset (Bag)Coming soon
- MultimapComing soon
- Insertion-Ordered (Linked) Hash MapComing soon
- Randomized Set (`O(1)` Insert, Delete & Sample)Coming soon
- Randomized Collection with DuplicatesComing soon
- Cuckoo HashingComing soon
Recursion, Call Stack & Divide-and-Conquer
Activation frames, base cases, recursive leap of faith, stack-to-loop conversion, and divide-and-conquer recurrence trees.
- Recursion Call Stack & FramesComing soon
- Base Cases & Recursive Leap of FaithComing soon
- Tail Recursion & Explicit Stack ConversionComing soon
- Divide & Conquer DecompositionComing soon
- Recurrence Trees & Master Theorem IntuitionComing soon
Sorting Algorithms
Every core sort unpacked individually: Bubble, Selection, Insertion, Gnome, Merge, Heap, Quick, and Timsort.
- Bubble Sort & Early-Exit OptimizationStart lesson →
- Selection SortStart lesson →
- Insertion Sort (Iterative & Recursive)Start lesson →
- Gnome SortStart lesson →
- Merge SortStart lesson →
- Heap SortStart lesson →
- Quick Sort & QuickselectStart lesson →
- Timsort (Production Hybrid Sort)Coming soon
- Counting SortStart lesson →
- Radix & Bucket SortComing soon
Binary Search, Sweep Line & Intervals
Halving monotonic spaces, lower/upper bounds, coordinate compression, merging intervals, and sweep lines.
- Binary Search (Exact Lookup)Coming soon
- Lower Bound & Upper Bound (`bisect`)Coming soon
- Binary Search on Answer SpaceComing soon
- Coordinate CompressionComing soon
- Merging & Intersecting IntervalsComing soon
- Sweep Line & Event SortingComing soon
- Disjoint Interval SetComing soon
Trees, BSTs & Balanced Search Trees
Binary/N-ary trees, BSTs, AVL & Red-Black rotations, Treaps, Skip Lists, Interval Trees, and Binary Lifting.
- Binary Tree & DFS/BFS TraversalsComing soon
- N-ary Tree & Rooted ForestComing soon
- Parent Array RepresentationComing soon
- Binary Lifting & Lowest Common Ancestor (LCA)Coming soon
- Binary Search Tree (BST)Coming soon
- Ordered Map & Ordered SetComing soon
- AVL Tree & RotationsComing soon
- Red-Black TreeComing soon
- Treap (Tree + Heap)Coming soon
- Skip ListComing soon
- Order-Statistic TreeComing soon
- Interval TreeComing soon
- Rope (Text Chunk Tree)Coming soon
- Preorder, Inorder & Postorder TraversalComing soon
Heaps, Priority Queues & Streams
Array-backed binary heaps, Top-K gatekeepers, two-heap medians, indexed heaps, and meldable heap forests.
- Binary Heaps, Priority Queues & Top-KStart lesson →
- Priority Queue Contract & Tie-BreakingComing soon
- Streaming Median with Two HeapsComing soon
- Indexed Priority Queue (`decrease-key`)Coming soon
- Double-Ended Priority Queue (Min-Max Heap)Coming soon
- Binomial HeapComing soon
- Pairing HeapComing soon
- Fibonacci HeapComing soon
- Quickselect & Order StatisticsComing soon
Graphs, Traversal & Union-Find
Adjacency models, implicit grids, BFS/DFS, DAG topological order, Union-Find (DSU), MSTs, and SCCs.
- Graph Models: Undirected, Directed & WeightedComing soon
- Adjacency ListComing soon
- Adjacency Matrix & Edge ListComing soon
- Implicit Grid GraphComing soon
- Breadth-First Search (BFS) & Multi-Source BFSComing soon
- Depth-First Search (DFS) & 3-Color Cycle DetectionComing soon
- Directed Acyclic Graphs (DAGs) & Topological SortComing soon
- Disjoint Set / Union-Find (DSU)Coming soon
- Weighted Disjoint SetComing soon
- Rollback Disjoint SetComing soon
- Minimum Spanning Trees (Kruskal & Prim)Coming soon
- Tarjan’s SCCs, Bridges & Articulation PointsComing soon
Caching, Eviction & Stampedes
Cache hits/misses, LRU, FIFO, LFU frequency buckets, TTL invalidation, and singleflight stampede control.
- Cache Hits, Misses & FIFO EvictionComing soon
- LRU Cache & Eviction PoliciesStart lesson →
- LFU Cache & TinyLFU AdmissionComing soon
- Cache Invalidation, TTL & Stale-While-RevalidateComing soon
- Cache Stampede & Singleflight CoalescingComing soon
Probabilistic Filters & Sketches
Approximate membership, distinct counts, frequency estimates, and similarity signatures with explicit error tradeoffs.
- Bloom FiltersStart lesson →
- Counting Bloom FilterComing soon
- Cuckoo FilterComing soon
- Count-Min SketchComing soon
- HyperLogLog (Distinct Cardinality)Coming soon
- Quotient FilterComing soon
- Xor FilterComing soon
- Binary Fuse FilterComing soon
- Blocked Bloom FilterComing soon
- MinHash & Jaccard SimilarityComing soon
- SimHash & Angular SimilarityComing soon
- Probability, Hashing & Sketch ErrorComing soon
Shortest Paths & Heuristic Search
Weighted frontier relaxations: Dijkstra, 0-1 BFS, Bellman-Ford, Floyd-Warshall, minimax paths, and A* Search.
- Dijkstra’s Shortest PathStart lesson →
- 0-1 BFS (Deque Shortest Path)Coming soon
- Minimax & Bottleneck PathsComing soon
- A* Search & Heuristic PathfindingStart lesson →
- Bidirectional BFS & DijkstraComing soon
- Bellman-Ford & Negative Cycle DetectionComing soon
- Floyd-Warshall All-Pairs Shortest PathsComing soon
Backtracking & Dynamic Programming
Call stacks, pruned search trees, memo tables, 1-D/2-D DP, Knapsack, Tree DP, and Bitmask DP.
- Backtracking & Decision Search TreesComing soon
- Sparse Memoization Table (Top-Down DP)Coming soon
- DP Table & 1-D Dynamic ProgrammingComing soon
- 0/1 & Unbounded Knapsack DPComing soon
- 2-D Grid & Sequence DP (LCS & Edit Distance)Coming soon
- Longest Increasing Subsequence (O(n log n))Coming soon
- Interval DP & Rerooting Tree DPComing soon
- Bitmask DP (TSP & Subset States)Coming soon
Tries, String Automata & Range Trees
Tries, Rolling Hash, KMP, Aho-Corasick, Suffix Arrays/Trees, Fenwick Trees, and Lazy/Persistent Segment Trees.
- Trie (Prefix Tree)Coming soon
- Binary / Bitwise Trie (Maximum XOR)Coming soon
- Radix Tree & Ternary Search TreeComing soon
- Rolling Hash & Rabin-KarpComing soon
- KMP & Z-Algorithm (Exact Linear Matching)Coming soon
- Aho-Corasick Multi-Pattern AutomatonComing soon
- Suffix Array & Kasai’s LCP ArrayComing soon
- Suffix Tree & Suffix Automaton (SAM)Coming soon
- Sparse Table (Static `O(1)` RMQ)Coming soon
- Fenwick Tree (Binary Indexed Tree)Coming soon
- 2-D Fenwick TreeComing soon
- Segment TreeComing soon
- Lazy Propagation Segment TreeComing soon
- Implicit & Persistent Segment TreesComing soon
- 2-D Segment TreeComing soon
- Sparse Matrix (COO & Compressed Sparse Row)Coming soon
Storage Engines, Vector Search & Distributed CS
B/B+ Trees, WAL, LSM Trees & SSTables, Consistent Hashing, Rate Limiting, Spatial Trees, and HNSW Vector Search.
- B-Tree (Page-Oriented Multiway Search)Coming soon
- B+ Tree (Database Clustered & Secondary Indexes)Coming soon
- Write-Ahead Log (WAL) & Crash RecoveryComing soon
- LSM Trees, SSTables & CompactionComing soon
- Consistent Hashing & Virtual NodesComing soon
- Rate Limiting: Token Bucket, Leaky Bucket & Sliding LogComing soon
- k-d Tree (Multidimensional Splitting)Coming soon
- Quadtree & R-Tree (Spatial & Geo Indexes)Coming soon
- Spatial Hash Grid & GeohashComing soon
- Vector Indexing: Flat k-NN, IVF, PQ & HNSWStart lesson →
- Replicated Logs & Raft Leader ConsensusComing soon
Greedy Algorithms & Essential Math
Greedy choices, interval scheduling, exchange arguments, bit operations, GCD, modular arithmetic, and fast exponentiation.
- Greedy Choices & Loop InvariantsComing soon
- Exchange Arguments for Greedy ProofsComing soon
- Interval SchedulingComing soon
- Bit Manipulation & XOR PatternsComing soon
- Euclidean GCD & Least Common MultipleComing soon
- Modular ArithmeticComing soon
- Binary ExponentiationComing soon
- Sieve of EratosthenesComing soon
- Combinatorics & CountingComing soon
- Reservoir SamplingComing soon
Streaming Statistics & Quantile Sketches
Heavy hitters, distinct-set estimation, quantiles, relative error, and weighted sampling under bounded memory.
- Streaming Models & Error GuaranteesComing soon
- Count SketchComing soon
- Misra–Gries Frequent ItemsComing soon
- Space-Saving Heavy HittersComing soon
- K-Minimum Values Distinct SketchComing soon
- Theta Sketch & Set OperationsComing soon
- Compressed Probabilistic CountingComing soon
- KLL Quantile SketchComing soon
- Relative Error Quantiles SketchComing soon
- t-DigestComing soon
- DDSketchComing soon
- VarOpt Weighted SamplingComing soon
Network Flow, Cuts & Matching
Residual networks, augmenting paths, Dinic, bipartite matching, assignment, and minimum-cost flow.
- Flow Networks & Residual EdgesComing soon
- Ford–Fulkerson Augmenting PathsComing soon
- Edmonds–Karp Maximum FlowComing soon
- Dinic's Blocking-Flow AlgorithmComing soon
- Max-Flow Min-Cut & ReductionsComing soon
- Bipartite Matching & Alternating PathsComing soon
- Hopcroft–Karp MatchingComing soon
- Minimum-Cost FlowComing soon
- Hungarian Assignment AlgorithmComing soon
Computational Geometry
Orientation predicates, segment intersections, polygon queries, convex hulls, closest pairs, and planar diagrams.
- Orientation & Robust Geometric PredicatesComing soon
- Line Segment IntersectionComing soon
- Shoelace Polygon AreaComing soon
- Point-in-Polygon QueriesComing soon
- Convex Hull: Monotone ChainComing soon
- Rotating CalipersComing soon
- Closest Pair of PointsComing soon
- Sweep-Line Segment IntersectionsComing soon
- Voronoi DiagramsComing soon
- Delaunay TriangulationComing soon
Advanced String Algorithms & Compressed Indexes
LCP queries, palindromes, induced suffix sorting, wavelet trees, Burrows-Wheeler transforms, and FM indexes.
- LCP Array & Suffix ComparisonsComing soon
- Manacher's Palindrome AlgorithmComing soon
- Palindromic Tree (Eertree)Coming soon
- Burrows–Wheeler TransformComing soon
- Wavelet Tree & Rank/SelectComing soon
- FM-Index & Backward SearchComing soon
- SA-IS Induced Suffix SortingComing soon
- Bit-Parallel String MatchingComing soon
Advanced Trees & Offline Queries
Euler tours, LCA, heavy-light and centroid decomposition, rerooting, small-to-large merging, and dynamic forests.
- Euler Tour & Subtree FlatteningComing soon
- Lowest Common Ancestor QueriesComing soon
- Heavy-Light DecompositionComing soon
- Centroid DecompositionComing soon
- Rerooting Dynamic ProgrammingComing soon
- Small-to-Large Set MergingComing soon
- Mo's Offline Range QueriesComing soon
- Splay TreeComing soon
- Link-Cut TreesComing soon
- Virtual Trees for Marked NodesComing soon
Advanced DP, Convolution & Transforms
Meet-in-the-middle search, conditional DP optimizations, line envelopes, polynomial convolution, FFT, and subset transforms.
- Meet-in-the-Middle SearchComing soon
- Divide-and-Conquer DP OptimizationComing soon
- Knuth OptimizationComing soon
- Convex Hull TrickComing soon
- Li Chao Segment TreeComing soon
- Polynomial ConvolutionComing soon
- Fast Fourier TransformComing soon
- Number-Theoretic TransformComing soon
- Subset Zeta & Möbius TransformsComing soon
Compression & Information Coding
Run-length and delta encoding, Huffman codes, arithmetic coding, and Lempel-Ziv dictionary methods.
- Run-Length EncodingComing soon
- Huffman Prefix CodesComing soon
- Arithmetic CodingComing soon
- LZ77 Sliding-Window CompressionComing soon
- LZW Dictionary CompressionComing soon
- Delta & Variable-Length Integer EncodingComing soon