Coding Trainer
Practice algorithmic exercises with spaced repetition.
Start a Practice Session
Difficulty
Number of exercises (133 available)
Roadmap
0 / 1330%
Foundations0/4
Prefix Sum0/3
Two Pointers0/3
Sliding Window0/14
Fast & Slow Ptrs0/3
Linked Lists0/7
Monotonic Stack0/3
Top K / Heap0/3
Sorting & Greedy0/8
Intervals0/3
Binary Search0/7
Backtracking0/3
Binary Tree0/4
DFS0/3
BFS0/3
Matrix0/5
Strings & DP0/3
Dynamic Prog.0/5
Design0/1
ML & Systems0/4
Easy Medium Hard· Click any exercise to toggle completion
Exercise Bank (133)
Two Sum
EasyHash Map Lookup
Maximum Average Subarray
EasySliding Window
Longest Substring Without Repeating Characters
MediumSliding WindowHash Map Lookup
Valid Parentheses
EasyStack & Queue
Merge Intervals
MediumIntervals
Search in Rotated Sorted Array
MediumBinary Search
Number of Islands
MediumTrees & Graph Traversal (BFS/DFS)
LRU Cache
MediumHash Map Lookup
Implement Softmax from Scratch
EasyTransformer Architecture
Scaled Dot-Product Attention
MediumTransformer Architecture
Design a Rate Limiter
MediumSystem Design Fundamentals
Design an LLM Inference Service
HardSystem Design FundamentalsTransformer ArchitectureTokenization & BPE
Median of Two Sorted Arrays
HardBinary Search
Longest Palindromic Substring
MediumTwo Pointers
Integer to Roman
MediumGreedy Algorithms
Remove Nth Node From End of List
MediumLinked List PatternsTwo Pointers
Merge k Sorted Lists
HardHeap / Priority QueueLinked List Patterns
Reverse Nodes in k-Group
HardLinked List Patterns
Permutations
MediumBacktracking
Pow(x, n)
MediumFast Exponentiation
Minimum Window Substring
HardSliding WindowHash Map Lookup
Remove Duplicates from Sorted Array II
MediumTwo Pointers
Remove Duplicates from Sorted List II
MediumLinked List Patterns
Climbing Stairs
EasyDynamic Programming
Split Array Largest Sum
HardBinary Search
Task Scheduler
MediumGreedy Algorithms
Wildcard Matching
HardString Dynamic ProgrammingDynamic Programming
Bag of Tokens
MediumTwo PointersGreedy Algorithms
Spiral Matrix
MediumMatrix Traversal & In-Place Operations
Kth Smallest Element in Sorted Matrix
MediumBinary Search
Rotate Image
MediumMatrix Traversal & In-Place Operations
Minimum Path Sum
MediumDynamic Programming
Remove Duplicates from Sorted Array
EasyTwo Pointers
Repeated DNA Sequences
MediumSliding WindowHash Map Lookup
Minimum Size Subarray Sum
MediumSliding Window
Longest Substring with At Least K Repeating Characters
MediumSliding Window
Arithmetic Slices
MediumSliding WindowDynamic Programming
Longest Repeating Character Replacement
MediumSliding WindowHash Map Lookup
Find All Anagrams in a String
MediumSliding WindowHash Map Lookup
Permutation in String
MediumSliding WindowHash Map Lookup
Find K Closest Elements
MediumBinary SearchSliding Window
Fruit Into Baskets
MediumSliding WindowHash Map Lookup
Count Number of Nice Subarrays
MediumSliding WindowPrefix Sum
Jump Game
MediumGreedy Algorithms
Jump Game II
MediumGreedy Algorithms
Gas Station
MediumGreedy Algorithms
Hand of Straights
MediumGreedy Algorithms
Non-overlapping Intervals
MediumGreedy Algorithms
Range Sum Query - Immutable
EasyPrefix Sum
LC #303
Contiguous Array
MediumPrefix SumHash Map Lookup
LC #525
Subarray Sum Equals K
MediumPrefix SumHash Map Lookup
LC #560
Two Sum II - Input Array Is Sorted
MediumTwo Pointers
LC #167
3Sum
MediumTwo Pointers
LC #15
Container With Most Water
MediumTwo Pointers
LC #11
Linked List Cycle
EasyFast & Slow Pointers
LC #141
Happy Number
EasyFast & Slow Pointers
LC #202
Find the Duplicate Number
MediumFast & Slow Pointers
LC #287
Reverse Linked List
EasyLinked List Reversal
LC #206
Reverse Linked List II
MediumLinked List Reversal
LC #92
Swap Nodes in Pairs
MediumLinked List Reversal
LC #24
Next Greater Element I
EasyMonotonic Stack
LC #496
Daily Temperatures
MediumMonotonic Stack
LC #739
Largest Rectangle in Histogram
HardMonotonic Stack
LC #84
Kth Largest Element in an Array
MediumTop K / Heap
LC #215
Top K Frequent Elements
MediumTop K / Heap
LC #347
Find K Pairs with Smallest Sums
MediumTop K / Heap
LC #373
Insert Interval
MediumIntervals
LC #57
Find Minimum in Rotated Sorted Array
MediumBinary Search
LC #153
Search a 2D Matrix II
MediumBinary Search
LC #240
Binary Tree Paths
EasyBinary Tree
LC #257
Kth Smallest Element in a BST
MediumBinary Tree
LC #230
Binary Tree Maximum Path Sum
HardBinary Tree
LC #124
Binary Tree Level Order Traversal II
MediumBinary Tree
LC #107
Clone Graph
MediumDFS
LC #133
Path Sum II
MediumDFS
LC #113
Course Schedule II
MediumTopological Sort
LC #210
Binary Tree Level Order Traversal
MediumBFS
LC #102
Rotting Oranges
MediumBFS
LC #994
Word Ladder
HardBFS
LC #127
Flood Fill
EasyMatrix Traversal
LC #733
Surrounded Regions
MediumMatrix Traversal
LC #130
Subsets
MediumBacktracking
LC #78
N-Queens
HardBacktracking
LC #51
Longest Increasing Subsequence
MediumDynamic Programming
LC #300
Coin Change
Medium0/1 Knapsack (DP)Dynamic Programming
LC #322
Partition Equal Subset Sum
Medium0/1 Knapsack (DP)Dynamic Programming
LC #416
Longest Common Subsequence
MediumDynamic Programming
LC #1143
Burst Balloons
HardDynamic Programming
LC #312
Best Time to Buy and Sell Stock
EasyGreedy Algorithms
LC #121
Contains Duplicate
EasyHash Map Lookup
LC #217
Product of Array Except Self
MediumPrefix Sum
LC #238
Maximum Subarray
MediumDynamic Programming
LC #53
Maximum Product Subarray
MediumDynamic Programming
LC #152
Sum of Two Integers
MediumOther
LC #371
Number of 1 Bits
EasyOther
LC #191
Counting Bits
EasyDynamic Programming
LC #338
Missing Number
EasyOther
LC #268
Reverse Bits
EasyOther
LC #190
Word Break
MediumDynamic ProgrammingString Dynamic Programming
LC #139
Combination Sum
MediumBacktracking
LC #39
House Robber
MediumDynamic Programming
LC #198
House Robber II
MediumDynamic Programming
LC #213
Course Schedule
MediumTopological Sort
LC #207
Pacific Atlantic Water Flow
MediumMatrix Traversal & In-Place Operations
LC #417
Longest Consecutive Sequence
MediumHash Map Lookup
LC #128
Alien Dictionary
HardTopological Sort
LC #269
Graph Valid Tree
MediumDFS
LC #261
Number of Connected Components in an Undirected Graph
MediumDFS
LC #323
Meeting Rooms
EasyIntervals
LC #252
Meeting Rooms II
MediumIntervals
LC #253
Merge Two Sorted Lists
EasyLinked List Patterns
LC #21
Reorder List
MediumLinked List Patterns
LC #143
Set Matrix Zeroes
MediumMatrix Traversal & In-Place Operations
LC #73
Word Search
MediumBacktracking
LC #79
Decode Ways
MediumDynamic ProgrammingString Dynamic Programming
LC #91
Unique Paths
MediumDynamic Programming
LC #62
Valid Anagram
EasyHash Map Lookup
LC #242
Group Anagrams
MediumHash Map Lookup
LC #49
Valid Palindrome
EasyTwo Pointers
LC #125
Palindromic Substrings
MediumTwo Pointers
LC #647
Encode and Decode Strings
MediumOther
LC #271
Maximum Depth of Binary Tree
EasyTrees & Graph Traversal (BFS/DFS)
LC #104
Same Tree
EasyTrees & Graph Traversal (BFS/DFS)
LC #100
Invert Binary Tree
EasyTrees & Graph Traversal (BFS/DFS)
LC #226
Serialize and Deserialize Binary Tree
HardTrees & Graph Traversal (BFS/DFS)
LC #297
Subtree of Another Tree
EasyTrees & Graph Traversal (BFS/DFS)
LC #572
Construct Binary Tree from Preorder and Inorder Traversal
MediumTrees & Graph Traversal (BFS/DFS)
LC #105
Validate Binary Search Tree
MediumTrees & Graph Traversal (BFS/DFS)
LC #98
Lowest Common Ancestor of a Binary Search Tree
MediumTrees & Graph Traversal (BFS/DFS)
LC #235
Implement Trie (Prefix Tree)
MediumOther
LC #208
Add and Search Word
MediumOther
LC #211
Word Search II
HardBacktracking
LC #212
Find Median from Data Stream
HardHeap / Priority Queue
LC #295