Original problem set

1194 problems we wrote ourselves, mapped one-to-one onto LeetCode

Every problem here trains the exact technique of a specific LeetCode problem, and says which one. The story, the examples, the constraints, the tests and the solutions are all original — so you have to reach for the pattern instead of recognising a statement you have already read a dozen times.

1,194
original problems
15,062
test cases run against the solutions
132
topics covered
7
languages you can solve in
300/657/237
easy / medium / hard
0%solved

Your progress

0 / 1194

0 in progress · 1194 to do

Easy0 / 300
Medium0 / 657
Hard0 / 237
0 daysstreak

Last 4 weeks. A square lights up on any day you mark a problem.

Submitting code against the 15,062 graded cases marks a problem solved automatically. You can also mark one yourself, which is not checked. Either way it stays in this browser and is never sent anywhere.

1194 problems

  • Ledger Reconciliation

    maps to LeetCode 1, Two Sum

    Easy
  • Pipeline Sensor Coverage

    maps to LeetCode 56, Merge Intervals

    Medium
  • Template Grouping Check

    maps to LeetCode 20, Valid Parentheses

    Easy
  • One Flip on the Card Market

    maps to LeetCode 121, Best Time to Buy and Sell Stock

    Easy
  • Bin Label Families

    maps to LeetCode 49, Group Anagrams

    Medium
  • Largest Clean Tap Block

    maps to LeetCode 3, Longest Substring Without Repeating Characters

    Medium
  • Trail Elevation Stretches

    maps to LeetCode 560, Subarray Sum Equals K

    Medium
  • Level Flood Capacity

    maps to LeetCode 42, Trapping Rain Water

    Hard
  • Amplifier Bypass Gains

    maps to LeetCode 238, Product of Array Except Self

    Medium
  • Longest Mirror Run

    maps to LeetCode 5, Longest Palindromic Substring

    Medium
  • Most Reported Calibration Offsets

    maps to LeetCode 347, Top K Frequent Elements

    Medium
  • Rack Corruption Sweep

    maps to LeetCode 994, Rotting Oranges

    Medium
  • Module Build Order

    maps to LeetCode 210, Course Schedule II

    Medium
  • Merge Shard Streams

    maps to LeetCode 23, Merge k Sorted Lists

    Hard
  • Compact Blank Cells

    maps to LeetCode 283, Move Zeroes

    Easy
  • Charge Neutral Triples

    maps to LeetCode 15, 3Sum

    Medium
  • Overnight Print Rate

    maps to LeetCode 875, Koko Eating Bananas

    Medium
  • Kth Highest Daily Swing

    maps to LeetCode 215, Kth Largest Element in an Array

    Medium
  • Shared Crate Code

    maps to LeetCode 14, Longest Common Prefix

    Easy
  • Paired Station Median

    maps to LeetCode 4, Median of Two Sorted Arrays

    Hard
  • Banner Between Pillars

    maps to LeetCode 11, Container With Most Water

    Medium
  • Widest Serviced Floor Band

    maps to LeetCode 128, Longest Consecutive Sequence

    Medium
  • Rolling Peak Readings

    maps to LeetCode 239, Sliding Window Maximum

    Hard
  • Mirror Phrase Check

    maps to LeetCode 125, Valid Palindrome

    Easy
  • Deviation Value Span

    maps to LeetCode 34, Find First and Last Position of Element in Sorted Array

    Medium
  • Best Trading Day Run

    maps to LeetCode 53, Maximum Subarray

    Medium
  • Shifted Catalogue Lookup

    maps to LeetCode 33, Search in Rotated Sorted Array

    Medium
  • Peak Charging Bay Demand

    maps to LeetCode 253, Meeting Rooms II

    Medium
  • Clockwise Panel Readout

    maps to LeetCode 54, Spiral Matrix

    Medium
  • Apprenticeship Skill Plan

    maps to LeetCode 207, Course Schedule

    Medium
  • Keypad Code Spellings

    maps to LeetCode 17, Letter Combinations of a Phone Number

    Medium
  • Pack the Symbol Tape

    maps to LeetCode 443, String Compression

    Medium
  • Longest Repainted Stretch

    maps to LeetCode 424, Longest Repeating Character Replacement

    Medium
  • Delay the Sample Buffer

    maps to LeetCode 189, Rotate Array

    Medium
  • First Solo Stop

    maps to LeetCode 387, First Unique Character in a String

    Easy
  • Merge Into the Padded Log

    maps to LeetCode 88, Merge Sorted Array

    Easy
  • Expand the Weave Pattern

    maps to LeetCode 394, Decode String

    Medium
  • Matching Letter Tally

    maps to LeetCode 242, Valid Anagram

    Easy
  • Fewest Tokens for the Charge

    maps to LeetCode 322, Coin Change

    Medium
  • Tablet Glyph Trail

    maps to LeetCode 79, Word Search

    Medium

How these were built

A problem set is only worth practising on if the answers are right. Here is what each of the 1194 problems had to survive before it appeared on this page.

Written from a spec, not from prose

Each problem starts from a structured brief: the technique, difficulty, topic tags, function shape and numeric bounds of its parent. The parent's own wording, examples and editorials are never part of the input, so the text you read is genuinely ours.

Every example is executed

The reference solution is run against every worked example and every test case before a problem ships. If an example's stated output disagrees with the code, the problem does not publish.

Cross-checked and mutation tested

A second, deliberately slow implementation is written independently and both are fuzzed against each other on random inputs. Then known-wrong variants of the solution are run against the tests — if a wrong version passes, the test set is too weak and gets fixed.

Reviewed for the things graders miss

A separate review pass checks the claimed time and space complexity, hunts for hints leaking into example explanations, and confirms the solution survives the largest input the constraints allow.

How the judge works, and where it stops

Open any problem and there is an editor next to it, with a typed starter signature in Python, JavaScript, TypeScript, Java, C++, Go and Ruby. Submit runs your code against every graded case and shows the first one that disagrees, with the input, your output and what was expected. Python and JavaScript execute in your own browser, so they need no account and start instantly; the compiled languages go to a sandboxed runner, which needs a free account because compiling costs real CPU.

Two limits worth knowing up front. Timings are wall-clock on whichever machine ran the code, not a standardised box, so read them against your own previous attempts rather than anyone else's. And submissions are stored in your browser, which means no cross-device history and no percentile ranking — with no shared submissions table, “faster than 78%” would be a number we invented. Four problems take arbitrarily nested input that no fixed type describes, so they offer the dynamically typed languages only; the picker says so rather than hiding them.

1194 original practice problems across 132 topics.

September 7
Apply