Coding Interview Problems by Pattern
298 coding interview problems organized by algorithm pattern, with step-by-step solution guides and recall training.
66 Easy
201 Medium
31 Hard
Hash Maps
8 Easy·14 Medium
Contains Duplicate
Membership Tracking
Easy
Contains Duplicate II
Index Tracking for Duplicate Detection
Easy
First Unique Character in a String
Frequency Counting
Easy
Happy Number
Cycle Detection via Visited Set
Easy
Isomorphic Strings
One-to-One Mapping Validation
Easy
Number of Good Pairs
Frequency Counting
Easy
Two Sum
Complement Lookup
Easy
Valid Anagram
Frequency Counting
Easy
4Sum II
Complement Counting
Medium
Contiguous Array
Prefix Sum with First Occurrence Tracking
Medium
Continuous Subarray Sum
Prefix Sum Remainder Tracking
Medium
Copy List with Random Pointer
Node Mapping for Deep Copy
Medium
Count Number of Nice Subarrays
Prefix Sum Frequency Counting
Medium
Design Underground System
Stateful Aggregation
Medium
Detect Squares
Frequency Counting with Coordinate Grouping
Medium
Equal Row and Column Pairs
Frequency Counting with Tuple Keys
Medium
Group Anagrams
Grouping by Canonical Key
Medium
Longest Consecutive Sequence
Set Membership for Sequence Detection
Medium
Minimum Consecutive Card Pickup
Index Tracking for Duplicate Detection
Medium
Sort Characters By Frequency
Frequency Counting and Sorting
Medium
Subarray Sum Equals K
Prefix Sum Frequency Counting
Medium
Valid Sudoku
Set Tracking for Uniqueness
Medium
Two Pointers
11 Easy·9 Medium·1 Hard
Backspace String Compare
Greedy Backward Traversal
Easy
Is Subsequence
Linear Scan for Subsequence
Easy
Merge Strings Alternately
Two-Pointer Alternating Merge
Easy
Move Zeroes
Stable Partition
Easy
Remove Duplicates from Sorted Array
In-Place Array Modification
Easy
Remove Element
In-Place Filtering
Easy
Reverse Words in a String III
Word-by-Word Transformation
Easy
Squares of a Sorted Array
Greedy Contraction
Easy
Two Sum II - Input Array Is Sorted
Greedy Contraction
Easy
Valid Palindrome
Symmetric Character Comparison with Filtering
Easy
Valid Palindrome II
Greedy with Conditional Branching
Easy
3Sum
Sorted Array Pair Search
Medium
Container With Most Water
Greedy Contraction
Medium
Interval List Intersections
Linear Merge of Sorted Intervals
Medium
Longest Palindromic Substring
Expand Around Center
Medium
Palindromic Substrings
Expand Around Center
Medium
Remove Duplicates from Sorted Array II
In-Place Overwrite
Medium
Remove Nth Node From End of List
Fixed Gap
Medium
Sort Colors
Three-Way Partitioning / Dutch National Flag
Medium
String Compression
In-Place Compression
Medium
Trapping Rain Water
Greedy Contraction
Hard
Sliding Window
1 Easy·18 Medium·5 Hard
Maximum Average Subarray I
Fixed-Size Window
Easy
Find All Anagrams in a String
Fixed-Size Frequency Matching
Medium
Frequency of the Most Frequent Element
Variable Size with Sum Tracking
Medium
Fruit Into Baskets
Variable Size with Frequency Map
Medium
Get Equal Substrings Within Budget
Variable Size Window with Sum Constraint
Medium
Grumpy Bookstore Owner
Fixed-Size Window Sum Optimization
Medium
Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit
Monotonic Queue Optimization
Medium
Longest Repeating Character Replacement
Variable Size with Frequency Tracking
Medium
Longest Subarray of 1's After Deleting One Element
Variable Size with Constraint
Medium
Longest Substring with At Most K Distinct Characters
Variable Size with Frequency Map
Medium
Longest Substring Without Repeating Characters
Dynamic Window Adjustment
Medium
Max Consecutive Ones III
Variable Size with Constraint
Medium
Maximize the Confusion of an Exam
Variable Size with Constraint
Medium
Maximum Erasure Value
Dynamic Window with Set for Uniqueness
Medium
Maximum Number of Vowels in a Substring of Given Length
Fixed-Size Window
Medium
Maximum Sum of Distinct Subarrays With Length K
Fixed-Size with Distinctness Constraint
Medium
Minimum Size Subarray Sum
Variable Size Window
Medium
Permutation in String
Fixed-Size Frequency Matching
Medium
Subarray Product Less Than K
Variable Size with Multiplicative Constraint
Medium
Minimum Window Substring
Variable Size with Frequency Counting
Hard
Shortest Subarray with Sum at Least K
Prefix Sums + Monotonic Deque
Hard
Sliding Window Maximum
Monotonic Queue
Hard
Subarrays with K Different Integers
Counting Subarrays with Constraints
Hard
Substring with Concatenation of All Words
Fixed-Size Chunk Partitioning
Hard
Stacks
1 Easy·1 Medium
Modified Binary Search
5 Easy·8 Medium·1 Hard
Binary Search
Easy
First Bad Version
Boundary Search
Easy
Lowest Common Ancestor of a Binary Search Tree
Directed Tree Traversal
Easy
Search Insert Position
Lower Bound Search
Easy
Sqrt(x)
Search for Integer Square Root
Easy
Count Complete Tree Nodes
Height-Based Pruning in Complete Binary Trees
Medium
Find Minimum in Rotated Sorted Array
Rotated Sorted Array
Medium
Find Peak Element
Slope-Based Search for Peak
Medium
Koko Eating Bananas
Search Space Reduction on Monotonic Function
Medium
Random Pick with Weight
Binary Search on Prefix Sums for Weighted Random Selection
Medium
Search a 2D Matrix
Two-Level Search in Sorted Matrix
Medium
Search in Rotated Sorted Array
Rotated Sorted Array
Medium
Time Based Key-Value Store
Rightmost Element Search in Sorted Array
Medium
Median of Two Sorted Arrays
Partitioning Technique
Hard
In-place Reversal of a Linked List
2 Easy·4 Medium·1 Hard
Merge Two Sorted Lists
Two-Pointer Merge
Easy
Reverse Linked List
Easy
Add Two Numbers
Digit-by-Digit Simulation
Medium
Reorder List
Fast & Slow Pointers + In-place Reversal + Merge
Medium
Reverse Linked List II
Partial Sublist
Medium
Swap Nodes in Pairs
Pointer Manipulation for Node Swapping
Medium
Reverse Nodes in k-Group
Interval Reversal
Hard
DFS
11 Easy·28 Medium·1 Hard
Balanced Binary Tree
Post-Order Traversal with State Aggregation
Easy
Diameter of Binary Tree
Post-Order Traversal with State Propagation
Easy
Find if Path Exists in Graph
Graph Connectivity
Easy
Flood Fill
Grid Connected Component Traversal
Easy
Invert Binary Tree
Recursive Tree Traversal
Easy
Maximum Depth of Binary Tree
Post-Order Traversal for Tree Depth
Easy
Minimum Absolute Difference in BST
Inorder Traversal on BST
Easy
Path Sum in Binary Tree
Recursive State Exploration on Trees
Easy
Range Sum of BST
Pruned Search on BST
Easy
Same Tree
Recursive Tree Traversal
Easy
Subtree of Another Tree
Recursive Tree Traversal and Comparison
Easy
Accounts Merge
Graph Connected Components
Medium
All Paths From Source to Target
Stateful Exploration with Backtracking
Medium
Binary Search Tree Iterator
Controlled Inorder Traversal with Stack
Medium
Binary Tree Longest Consecutive Sequence II
Post-Order Traversal with State Propagation
Medium
Clone Graph
Graph Cloning with Memoization
Medium
Construct Binary Tree from Preorder and Inorder Traversal
Recursive Tree Construction
Medium
Count Good Nodes in Binary Tree
Stateful Exploration
Medium
Course Schedule
Cycle Detection in Directed Graph
Medium
Course Schedule II
Cycle Detection and Topological Sort
Medium
Evaluate Division
Graph Traversal with Accumulated State
Medium
Find Leaves of Binary Tree
Post-Order Traversal with State Aggregation
Medium
Flatten Binary Tree to Linked List
Preorder Traversal with Postprocessing
Medium
Graph Valid Tree
Cycle Detection and Connectivity Check
Medium
House Robber III
Stateful Exploration with Dual State Tracking
Medium
Keys and Rooms
Graph Reachability
Medium
Kth Smallest Element in a BST
Inorder Traversal with Early Termination
Medium
Max Area of Island
Connected Components in Grid
Medium
Minimum Number of Edge Reversals to Reach City Zero
Graph Traversal with Edge Direction Tracking
Medium
Minimum Score of a Path Between Two Cities
Graph Connectivity and State Propagation
Medium
Number of Islands
Connected Components in Grid
Medium
Number of Provinces
Connected Components in Graph
Medium
Pacific Atlantic Water Flow
Reverse Reachability in Grid
Medium
Path Sum III
Prefix Sum with Backtracking
Medium
Serialize and Deserialize Binary Tree
Preorder Traversal with State Preservation
Medium
Sum Root to Leaf Numbers
Stateful Exploration
Medium
Surrounded Regions
Boundary-Connected Region Marking
Medium
Validate Binary Search Tree
Boundary-Constrained Validation
Medium
Word Search
Stateful Exploration with Backtracking
Medium
Binary Tree Maximum Path Sum
Post-Order Traversal with State Propagation
Hard
BFS
14 Medium·4 Hard
01 Matrix
Multi-Source Traversal
Medium
All Nodes Distance K in Binary Tree
Shortest Path on Unweighted Graph
Medium
As Far from Land as Possible
Multi-Source Traversal
Medium
Binary Tree Level Order Traversal
Level Order Traversal on Tree
Medium
Binary Tree Right Side View
Level-Order Traversal for Layered State Exploration
Medium
Binary Tree Vertical Order Traversal
Layered Graph Traversal with State Tracking
Medium
Binary Tree Zigzag Level Order Traversal
Level Order Traversal with Direction Toggle
Medium
Even Odd Tree
Level-Order Traversal with Conditional Validation
Medium
Find Largest Value in Each Tree Row
Level-Order Traversal with Aggregation
Medium
Nearest Exit from Entrance in Maze
Shortest Path on Unweighted Grid
Medium
Open the Lock
Shortest Path on Unweighted Graph
Medium
Rotting Oranges
Shortest Path on Unweighted Grid
Medium
Shortest Path in Binary Matrix
Shortest Path on Unweighted Graph
Medium
Walls and Gates
Multi-Source Traversal
Medium
Bus Routes
Shortest Path on Unweighted Graph
Hard
Shortest Path in a Grid with Obstacles Elimination
Shortest Path with State Augmentation
Hard
Sliding Puzzle
Shortest Path on Unweighted Graph
Hard
Word Ladder
Shortest Path on Unweighted Graph
Hard
Heap / Priority Queue
1 Easy·14 Medium·3 Hard
Last Stone Weight
Max Heap Simulation
Easy
Design Twitter
K-Way Merge of Sorted Lists
Medium
Hand of Straights
Greedy Sequential Grouping
Medium
K Closest Points to Origin
Partial Sorting
Medium
Kth Largest Element in a Stream
Fixed-Size Min-Heap for Top K Elements
Medium
Kth Largest Element in an Array
Fixed-Size Min-Heap for Top K Elements
Medium
Maximum Subsequence Score
Sorted Greedy with Min-Heap over Values
Medium
Meeting Rooms II
Interval Scheduling Resource Allocation
Medium
Min Cost to Connect All Points
Prim's Algorithm for MST
Medium
Minimum Interval to Include Each Query
Dynamic Candidate Filtering
Medium
Minimum Operations to Halve Array Sum
Greedy Maximum Extraction
Medium
Reorganize String
Greedy Frequency Scheduling
Medium
Top K Frequent Elements
Top K Elements
Medium
Top K Frequent Words
Frequency Sorting with Custom Comparator
Medium
Total Cost to Hire K Workers
Dynamic Candidate Pool Management
Medium
Find Median from Data Stream
Dual Heap Median Maintenance
Hard
Smallest Range Covering Elements from K Lists
K-Way Merge with Range Tracking
Hard
Swim in Rising Water
Best-First Search on Grid
Hard
Backtracking
11 Medium·1 Hard
Combination Sum
State Restoration
Medium
Combination Sum II
State Restoration with Duplicate Pruning
Medium
Combinations
State Restoration
Medium
Generate Parentheses
State Restoration
Medium
Letter Combinations of a Phone Number
State Restoration
Medium
Palindrome Partitioning
State Restoration
Medium
Permutations
State Restoration
Medium
Reconstruct Itinerary
State Restoration with Lexicographical Ordering
Medium
Restore IP Addresses
State Restoration
Medium
Subsets
State Restoration
Medium
Subsets II
State Restoration with Duplicate Skipping
Medium
N-Queens
State Restoration
Hard
Trie
4 Medium·1 Hard
Union Find
2 Medium
Merge Intervals
3 Medium
Prefix Sum
1 Easy·5 Medium
Greedy Algorithms
5 Easy·15 Medium·2 Hard
Assign Cookies
Resource Allocation
Easy
Best Time to Buy and Sell Stock
Two Pointers for Optimal Substructure
Easy
Best Time to Buy and Sell Stock II
Incremental Profit Accumulation
Easy
Majority Element
Boyer-Moore Voting
Easy
Meeting Rooms
Interval Scheduling Overlap Detection
Easy
Asteroids Destroyed
Incremental Accumulation
Medium
Best Sightseeing Pair
Prefix Tracking
Medium
Car Fleet
Monotonic Stack for Grouping
Medium
Gas Station
Single Pass Feasibility and Reset
Medium
Increasing Triplet Subsequence
State Compression for Subsequence Detection
Medium
Jump Game
Backward Reachability
Medium
Jump Game II
Range Expansion
Medium
Least Number of Unique Integers after K Removals
Frequency-Based Removal
Medium
Merge Triplets to Form Target
Selective Filtering and Coverage
Medium
Minimum Number of Arrows to Burst Balloons
Interval Scheduling
Medium
Non-overlapping Intervals
Interval Scheduling
Medium
Partition Labels
Interval Partitioning
Medium
Remove Covered Intervals
Interval Coverage via Sorting
Medium
Task Scheduler
Priority Scheduling with Cooldown
Medium
Valid Parenthesis String
Range Tracking
Medium
Candy
Two Pass Local Constraint Enforcement
Hard
Set Intersection Size At Least Two
Interval Sorting
Hard
Dynamic Programming
4 Easy·23 Medium·6 Hard
Climbing Stairs
Top-Down Memoization
Easy
Counting Bits
Bit Manipulation
Easy
Maximum Subarray
Kadane's Algorithm
Easy
Min Cost Climbing Stairs
Top-Down Memoization
Easy
Best Time to Buy and Sell Stock with Cooldown
State Machine with Cooldown
Medium
Best Time to Buy and Sell Stock with Transaction Fee
State Machine
Medium
Cheapest Flights Within K Stops
Bellman-Ford Relaxation with Edge Constraints
Medium
Coin Change
Top-Down Memoization
Medium
Coin Change 2
Top-Down Memoization for Combinatorial Counting
Medium
Decode Ways
Top-Down Memoization
Medium
Delete and Earn
House Robber Variant
Medium
Distinct Subsequences
Top-Down Memoization for Counting Subsequences
Medium
House Robber
Top-Down Memoization
Medium
House Robber II
Linear Subproblem Decomposition
Medium
Interleaving String
Top-Down Memoization for Sequence Interleaving
Medium
Length of Longest Fibonacci Subsequence
Pair-State Tracking
Medium
Longest Common Subsequence
Top-Down Memoization
Medium
Longest Increasing Subsequence
Top-Down Memoization
Medium
Longest Palindromic Subsequence
Top-Down Memoized Recursion
Medium
Maximum Product Subarray
Tracking Dual States
Medium
Maximum Sum Circular Subarray
Kadane's Algorithm with Circular Array Adaptation
Medium
Minimum Cost For Tickets
Interval Coverage
Medium
Partition Equal Subset Sum
Top-Down Memoized Subset Sum
Medium
Target Sum
Top-Down Memoization
Medium
Unique Paths
Top-Down Memoization
Medium
Unique Paths II
Grid Path Counting with Obstacles
Medium
Word Break
Top-Down Memoization
Medium
Best Time to Buy and Sell Stock IV
State Machine
Hard
Burst Balloons
Interval DP
Hard
Dungeon Game
Grid Backward State Propagation
Hard
Edit Distance
Top-Down Memoization for Sequence Alignment
Hard
Longest Increasing Path in a Matrix
Top-Down Memoization with DFS
Hard
Regular Expression Matching
Top-Down Memoization for Pattern Matching
Hard
Graph Properties
1 Easy
Matrix Traversal
3 Medium
Topological Sort
2 Medium·1 Hard
Dijkstra's Algorithm
1 Medium
K-way Merge
1 Hard
Fast & Slow Pointers
3 Easy·2 Medium
Linked List Cycle Detection
Cycle Detection in Linked List
Easy
Middle of the Linked List
Tortoise and Hare
Easy
Palindrome Linked List
Midpoint Detection and In-Place Reversal
Easy
Find the Duplicate Number
Cycle Detection in Array as Linked List
Medium
Linked List Cycle II
Cycle Detection and Entry Point Identification
Medium
Cyclic Sort
1 Medium
Monotonic Stack
3 Easy·9 Medium·3 Hard
Min Stack
Auxiliary Stack for State Tracking
Easy
Next Greater Element I
Monotonic Stack for Next Greater Element
Easy
Remove All Adjacent Duplicates In String
Simulated State Reduction
Easy
Asteroid Collision
Collision Simulation
Medium
Basic Calculator II
Operator Precedence Handling
Medium
Daily Temperatures
Next Greater Element
Medium
Evaluate Reverse Polish Notation
Expression Evaluation
Medium
Minimum Remove to Make Valid Parentheses
Parentheses Matching
Medium
Online Stock Span
Compress Consecutive Smaller Values
Medium
Remove All Adjacent Duplicates in String II
Count Tracking for Adjacent Removal
Medium
Simplify Path
Path Simplification
Medium
Sum of Subarray Minimums
Counting Subarray Contributions
Medium
Largest Rectangle in Histogram
Nearest Smaller Elements for Range Queries
Hard
Longest Valid Parentheses
Index Tracking for Valid Parentheses
Hard
Maximum Frequency Stack
Frequency Grouping with Max Frequency Tracking
Hard
Bit Manipulation
2 Easy·1 Medium
Bitwise XOR
1 Easy
Math & Geometry
5 Easy·1 Medium
Greatest Common Divisor of Strings
String Divisibility via GCD
Easy
Missing Number
Arithmetic Series Summation
Easy
Plus One
Digit-by-Digit Simulation
Easy
Reverse Integer
Digit-by-Digit Integer Manipulation
Easy
Sum of All Odd Length Subarrays
Combinatorial Counting
Easy
Pow(x, n)
Exponentiation by Squaring
Medium
Simulation
1 Easy·7 Medium
Kids With the Greatest Number of Candies
Direct State Evaluation
Easy
Design Browser History
Stateful Stack-Based History Management
Medium
Design Snake Game
Stateful Grid Movement with Collision Detection
Medium
Design Tic-Tac-Toe
Incremental State Tracking
Medium
Encode and Decode Strings
Length-Prefixed Encoding
Medium
Multiply Strings
Manual Digit-by-Digit Multiplication
Medium
Spiral Matrix
Boundary Shrinking
Medium
Zigzag Conversion
Stateful Traversal
Medium
System Design & Composition
1 Medium
Practice with active recall
Reading solutions is not enough. AlgoDrill blanks out key lines and makes you reconstruct them from memory.
Start drilling for free