Arrays & Hashing
Fundamental array operations and hash map techniques for efficient lookups.
A structured collection of data structures and algorithm problems. Learn the patterns, write the code, and track your progress.
Fundamental array operations and hash map techniques for efficient lookups.
Use two pointers to traverse arrays efficiently from both ends or at different speeds.
LIFO data structure for parsing, evaluation, and monotonic stack patterns.
Maintain a window of elements and slide it across the array for subarray problems.
Divide and conquer to find elements or boundaries in sorted data in O(log n).
Sequential node-based data structure. Master traversal, reversal, and cycle detection.
Hierarchical data structures. DFS, BFS, binary search trees, and balanced trees.
Prefix tree for efficient string search, autocomplete, and word dictionary problems.
Efficient min/max extraction. Used for scheduling, merging, and top-K problems.
Explore all possible solutions by building candidates and abandoning invalid ones.
Vertices and edges. BFS, DFS, topological sort, shortest path, and union-find.
Solve problems by breaking them into overlapping subproblems with one dimension.
Merge, insert, and schedule overlapping or non-overlapping intervals.
Two-dimensional state space problems: grids, strings, and matrix chain patterns.
Make locally optimal choices at each step to find the global optimum.
Number theory, modular arithmetic, and computational geometry problems.
Operate on individual bits for clever and efficient solutions to classic problems.