DSA patterns · practice
Practice problems.
1,194 original problems, each training the technique of a named LeetCode problem. Solve them in your browser against 15,062 graded tests.
New to a pattern? Learn it first- Easy
- 300
- Medium
- 657
- Hard
- 237
Your progress
0 / 1194
0 in progress · 1194 to do
Last 4 weeks. A square fills on any day you mark a problem.
A problem is marked solved when your code passes every graded case on Submit (the set has 15,062 in all). You can also mark one yourself, which is not checked. Either way it stays in this browser and is never sent anywhere.
All 1,194, searchable.
Classic shows the interview problem each one trains. Real world shows it as a task from a working system. Search finds either name.
1194 problems
- To doEasyTwo SumReal-world version: Ledger Reconciliation
Array · Hash Table
- To doMediumAdd Two NumbersReal-world version: Odometer Tape Sum
Linked List · Math · Recursion
- To doMediumLongest Substring Without Repeating CharactersReal-world version: Largest Clean Tap Block
Hash Table · String · Sliding Window
- To doHardMedian of Two Sorted ArraysReal-world version: Paired Station Median
Array · Binary Search · Divide and Conquer
- To doMediumLongest Palindromic SubstringReal-world version: Longest Mirror Run
Two Pointers · String · Dynamic Programming
- To doMediumZigzag ConversionReal-world version: Engraved Track Transcript
String
- To doMediumReverse IntegerReal-world version: Legacy Register Flip
Math
- To doMediumString to Integer (atoi)Real-world version: Salvage the Leading Number
String
- Real-world version: Mirrored Meter ReadingTo doEasy
- To doHardRegular Expression MatchingReal-world version: Mask Matches The Whole Code
String · Dynamic Programming · Recursion
- To doMediumContainer With Most WaterReal-world version: Banner Between Pillars
Array · Two Pointers · Greedy
- To doMediumInteger to RomanReal-world version: Vault Stroke Code
Hash Table · Math · String
- To doEasyRoman to IntegerReal-world version: Harborside Tally Value
Hash Table · Math · String
- To doEasyLongest Common PrefixReal-world version: Shared Crate Code
Array · String · Trie
- To doMedium3SumReal-world version: Charge Neutral Triples
Array · Two Pointers · Sorting
- To doMedium3Sum ClosestReal-world version: Three-Weight Ballast Trim
Array · Two Pointers · Sorting
- To doMediumLetter Combinations of a Phone NumberReal-world version: Keypad Code Spellings
Hash Table · String · Backtracking
- To doMedium4SumReal-world version: Four-Card Bias Groups
Array · Two Pointers · Sorting
- To doMediumRemove Nth Node From End of ListReal-world version: Unhook the Nth Wagon from the Tail
Linked List · Two Pointers
- To doEasyValid ParenthesesReal-world version: Template Grouping Check
String · Stack
- To doEasyMerge Two Sorted ListsReal-world version: Splice Index Card Chains
Linked List · Recursion
- To doMediumGenerate ParenthesesReal-world version: Ridge Walk Plans
String · Dynamic Programming · Backtracking
- To doHardMerge k Sorted ListsReal-world version: Merge Shard Streams
Array · Divide and Conquer · Heap (Priority Queue)
- To doMediumSwap Nodes in PairsReal-world version: Swap Neighbouring Clips
Linked List · Recursion
- To doHardReverse Nodes in k-GroupReal-world version: Shunting Wagon Blocks
Linked List · Recursion
- To doEasyRemove Duplicates from Sorted ArrayReal-world version: Collapse Repeated Offsets
Array · Two Pointers
- To doEasyRemove ElementReal-world version: Discard Fault Samples
Array · Two Pointers
- To doEasyFind the Index of the First Occurrence in a StringReal-world version: Locate the Routing Tag
Two Pointers · String · String Matching
- To doMediumDivide Two IntegersReal-world version: Microcode Divide Step
Math · Bit Manipulation
- To doHardSubstring with Concatenation of All WordsReal-world version: Code Tape Offsets
Hash Table · String · Sliding Window
- To doMediumNext PermutationReal-world version: Next Shelf Arrangement
Array · Two Pointers
- To doHardLongest Valid ParenthesesReal-world version: Longest Clean Trace Window
String · Dynamic Programming · Stack
- To doMediumSearch in Rotated Sorted ArrayReal-world version: Shifted Catalogue Lookup
Array · Binary Search
- To doMediumFind First and Last Position of Element in Sorted ArrayReal-world version: Deviation Value Span
Array · Binary Search
- To doEasySearch Insert PositionReal-world version: Threshold Insert Slot
Array · Binary Search
- To doMediumValid SudokuReal-world version: Depot Rack Audit
Array · Hash Table · Matrix
- To doHardSudoku SolverReal-world version: Complete the Planting Frame
Array · Hash Table · Backtracking
- To doMediumCount and SayReal-world version: Run Report Lines
String
- To doMediumCombination SumReal-world version: Exact Postage Mixes
Array · Backtracking
- To doMediumCombination Sum IIReal-world version: Exact Postage from a Stamp Box
Array · Backtracking