Blind & NeetCode patterns, broken into moves you can recognize.
Same pattern names you see in curated lists. Each family has sub-moves with checklists and traps, then jump into Play to practice.
21 patterns · 43 techniques
Arrays & Hashing
Trade O(N) space for instantaneous O(1) hash lookup table operations
Open familyPrefix Sum & Difference
Precalculate cumulative sums to solve contiguous range query problems in O(1)
Open familyTwo Pointers
Iterate from opposite ends or converging indices to search sorted elements in O(N)
Open familySliding Window
Maintain a contiguous window boundary across arrays to reduce O(N²) to O(N)
Open familyStack & Monotonic Stack
Last-In First-Out structure for nested parsing and monotonic range tracking
Open familyBinary Search
Logarithmic search space halving down to O(log N) efficiency
Open familyLinked List
Node-based pointer manipulation for linear memory traversal and O(1) mutations
Open familyFast & Slow Pointers
Floyd's Cycle Finding algorithm using dual pointers moving at different speeds
Open familyTrees & Tree DFS/BFS
Hierarchical node traversal via recursion DFS or level-order queue BFS
Open familyBinary Search Tree
Ordered tree structure with left < node < right property
Open familyGraph BFS / DFS
Grid and adjacency graph exploration using queue BFS or stack DFS
Open familyTopological Sort
Linear ordering of DAG nodes respecting directed dependency constraints
Open familyUnion Find (Disjoint Set)
Near O(1) connected component grouping via Path Compression and Union by Rank
Open familyHeap / Priority Queue
O(1) access to min/max key with O(log N) insertion and extraction
Open familyBacktracking
Systematic state space search via depth-first decision trees with pruning
Open familyTrie (Prefix Tree)
Tree structure optimized for string prefix lookup in O(L) time
Open family1D Dynamic Programming
Solve subproblems using 1D tabulation or memoization arrays
Open family2D Dynamic Programming
Multi-dimensional grid tabulation for sequence alignment and grid paths
Open familyGreedy Algorithms
Make locally optimal choices at each step to reach a global optimum
Open familyIntervals & Overlaps
Sort range tuples [start, end] to merge overlapping time blocks
Open familyBit Manipulation
Exploit binary AND, OR, XOR, and bit shifts for O(1) space tricks
Open family