Coding Trainer

Practice algorithmic exercises with spaced repetition.

View Progress

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

Easy
Hash Map Lookup

Maximum Average Subarray

Easy
Sliding Window

Longest Substring Without Repeating Characters

Medium
Sliding WindowHash Map Lookup

Valid Parentheses

Easy
Stack & Queue

Merge Intervals

Medium
Intervals

Search in Rotated Sorted Array

Medium
Binary Search

Number of Islands

Medium
Trees & Graph Traversal (BFS/DFS)

LRU Cache

Medium
Hash Map Lookup

Implement Softmax from Scratch

Easy
Transformer Architecture

Scaled Dot-Product Attention

Medium
Transformer Architecture

Design a Rate Limiter

Medium
System Design Fundamentals

Design an LLM Inference Service

Hard
System Design FundamentalsTransformer ArchitectureTokenization & BPE

Median of Two Sorted Arrays

Hard
Binary Search

Longest Palindromic Substring

Medium
Two Pointers

Integer to Roman

Medium
Greedy Algorithms

Remove Nth Node From End of List

Medium
Linked List PatternsTwo Pointers

Merge k Sorted Lists

Hard
Heap / Priority QueueLinked List Patterns

Reverse Nodes in k-Group

Hard
Linked List Patterns

Permutations

Medium
Backtracking

Pow(x, n)

Medium
Fast Exponentiation

Minimum Window Substring

Hard
Sliding WindowHash Map Lookup

Remove Duplicates from Sorted Array II

Medium
Two Pointers

Remove Duplicates from Sorted List II

Medium
Linked List Patterns

Climbing Stairs

Easy
Dynamic Programming

Split Array Largest Sum

Hard
Binary Search

Task Scheduler

Medium
Greedy Algorithms

Wildcard Matching

Hard
String Dynamic ProgrammingDynamic Programming

Bag of Tokens

Medium
Two PointersGreedy Algorithms

Spiral Matrix

Medium
Matrix Traversal & In-Place Operations

Kth Smallest Element in Sorted Matrix

Medium
Binary Search

Rotate Image

Medium
Matrix Traversal & In-Place Operations

Minimum Path Sum

Medium
Dynamic Programming

Remove Duplicates from Sorted Array

Easy
Two Pointers

Repeated DNA Sequences

Medium
Sliding WindowHash Map Lookup

Minimum Size Subarray Sum

Medium
Sliding Window

Longest Substring with At Least K Repeating Characters

Medium
Sliding Window

Arithmetic Slices

Medium
Sliding WindowDynamic Programming

Longest Repeating Character Replacement

Medium
Sliding WindowHash Map Lookup

Find All Anagrams in a String

Medium
Sliding WindowHash Map Lookup

Permutation in String

Medium
Sliding WindowHash Map Lookup

Find K Closest Elements

Medium
Binary SearchSliding Window

Fruit Into Baskets

Medium
Sliding WindowHash Map Lookup

Count Number of Nice Subarrays

Medium
Sliding WindowPrefix Sum

Jump Game

Medium
Greedy Algorithms

Jump Game II

Medium
Greedy Algorithms

Gas Station

Medium
Greedy Algorithms

Hand of Straights

Medium
Greedy Algorithms

Non-overlapping Intervals

Medium
Greedy Algorithms

Range Sum Query - Immutable

Easy
Prefix Sum

LC #303

Contiguous Array

Medium
Prefix SumHash Map Lookup

LC #525

Subarray Sum Equals K

Medium
Prefix SumHash Map Lookup

LC #560

Two Sum II - Input Array Is Sorted

Medium
Two Pointers

LC #167

3Sum

Medium
Two Pointers

LC #15

Container With Most Water

Medium
Two Pointers

LC #11

Linked List Cycle

Easy
Fast & Slow Pointers

LC #141

Happy Number

Easy
Fast & Slow Pointers

LC #202

Find the Duplicate Number

Medium
Fast & Slow Pointers

LC #287

Reverse Linked List

Easy
Linked List Reversal

LC #206

Reverse Linked List II

Medium
Linked List Reversal

LC #92

Swap Nodes in Pairs

Medium
Linked List Reversal

LC #24

Next Greater Element I

Easy
Monotonic Stack

LC #496

Daily Temperatures

Medium
Monotonic Stack

LC #739

Largest Rectangle in Histogram

Hard
Monotonic Stack

LC #84

Kth Largest Element in an Array

Medium
Top K / Heap

LC #215

Top K Frequent Elements

Medium
Top K / Heap

LC #347

Find K Pairs with Smallest Sums

Medium
Top K / Heap

LC #373

Insert Interval

Medium
Intervals

LC #57

Find Minimum in Rotated Sorted Array

Medium
Binary Search

LC #153

Search a 2D Matrix II

Medium
Binary Search

LC #240

Binary Tree Paths

Easy
Binary Tree

LC #257

Kth Smallest Element in a BST

Medium
Binary Tree

LC #230

Binary Tree Maximum Path Sum

Hard
Binary Tree

LC #124

Binary Tree Level Order Traversal II

Medium
Binary Tree

LC #107

Clone Graph

Medium
DFS

LC #133

Path Sum II

Medium
DFS

LC #113

Course Schedule II

Medium
Topological Sort

LC #210

Binary Tree Level Order Traversal

Medium
BFS

LC #102

Rotting Oranges

Medium
BFS

LC #994

Word Ladder

Hard
BFS

LC #127

Flood Fill

Easy
Matrix Traversal

LC #733

Surrounded Regions

Medium
Matrix Traversal

LC #130

Subsets

Medium
Backtracking

LC #78

N-Queens

Hard
Backtracking

LC #51

Longest Increasing Subsequence

Medium
Dynamic Programming

LC #300

Coin Change

Medium
0/1 Knapsack (DP)Dynamic Programming

LC #322

Partition Equal Subset Sum

Medium
0/1 Knapsack (DP)Dynamic Programming

LC #416

Longest Common Subsequence

Medium
Dynamic Programming

LC #1143

Burst Balloons

Hard
Dynamic Programming

LC #312

Best Time to Buy and Sell Stock

Easy
Greedy Algorithms

LC #121

Contains Duplicate

Easy
Hash Map Lookup

LC #217

Product of Array Except Self

Medium
Prefix Sum

LC #238

Maximum Subarray

Medium
Dynamic Programming

LC #53

Maximum Product Subarray

Medium
Dynamic Programming

LC #152

Sum of Two Integers

Medium
Other

LC #371

Number of 1 Bits

Easy
Other

LC #191

Counting Bits

Easy
Dynamic Programming

LC #338

Missing Number

Easy
Other

LC #268

Reverse Bits

Easy
Other

LC #190

Word Break

Medium
Dynamic ProgrammingString Dynamic Programming

LC #139

Combination Sum

Medium
Backtracking

LC #39

House Robber

Medium
Dynamic Programming

LC #198

House Robber II

Medium
Dynamic Programming

LC #213

Course Schedule

Medium
Topological Sort

LC #207

Pacific Atlantic Water Flow

Medium
Matrix Traversal & In-Place Operations

LC #417

Longest Consecutive Sequence

Medium
Hash Map Lookup

LC #128

Alien Dictionary

Hard
Topological Sort

LC #269

Graph Valid Tree

Medium
DFS

LC #261

Number of Connected Components in an Undirected Graph

Medium
DFS

LC #323

Meeting Rooms

Easy
Intervals

LC #252

Meeting Rooms II

Medium
Intervals

LC #253

Merge Two Sorted Lists

Easy
Linked List Patterns

LC #21

Reorder List

Medium
Linked List Patterns

LC #143

Set Matrix Zeroes

Medium
Matrix Traversal & In-Place Operations

LC #73

Word Search

Medium
Backtracking

LC #79

Decode Ways

Medium
Dynamic ProgrammingString Dynamic Programming

LC #91

Unique Paths

Medium
Dynamic Programming

LC #62

Valid Anagram

Easy
Hash Map Lookup

LC #242

Group Anagrams

Medium
Hash Map Lookup

LC #49

Valid Palindrome

Easy
Two Pointers

LC #125

Palindromic Substrings

Medium
Two Pointers

LC #647

Encode and Decode Strings

Medium
Other

LC #271

Maximum Depth of Binary Tree

Easy
Trees & Graph Traversal (BFS/DFS)

LC #104

Same Tree

Easy
Trees & Graph Traversal (BFS/DFS)

LC #100

Invert Binary Tree

Easy
Trees & Graph Traversal (BFS/DFS)

LC #226

Serialize and Deserialize Binary Tree

Hard
Trees & Graph Traversal (BFS/DFS)

LC #297

Subtree of Another Tree

Easy
Trees & Graph Traversal (BFS/DFS)

LC #572

Construct Binary Tree from Preorder and Inorder Traversal

Medium
Trees & Graph Traversal (BFS/DFS)

LC #105

Validate Binary Search Tree

Medium
Trees & Graph Traversal (BFS/DFS)

LC #98

Lowest Common Ancestor of a Binary Search Tree

Medium
Trees & Graph Traversal (BFS/DFS)

LC #235

Implement Trie (Prefix Tree)

Medium
Other

LC #208

Add and Search Word

Medium
Other

LC #211

Word Search II

Hard
Backtracking

LC #212

Find Median from Data Stream

Hard
Heap / Priority Queue

LC #295

Knowledge Bank (20)