Easy Problems Don't Build Interview Intuition. LeetCode Mediums Do.

- Pattern identification (not mechanical application) is what coding interviews test, and LeetCode medium problems are the only difficulty that forces you to practice it cold.
- Easy problems announce their category in the problem statement; mediums don't, which is exactly why they build the skill that transfers to real interviews.
- Meta's interview pool is ~60% mediums by tag count, making medium practice the closest proxy to actual interview conditions.
- Hard problems are more efficient per problem only after you have a real medium base; attempted too early, the debrief is empty and no transferable lesson sticks.
- The 35-minute timer with tags off is the core practice mechanic: form a hypothesis from constraints, trace manually if stuck, then debrief explicitly on the structural signal you missed.
- Interleaved practice across patterns (not blocked by category) builds the transfer that matters when an interview problem is unfamiliar.
- Rough allocation: 60-70% mediums, 20-25% easies for initial concept learning, 10-15% hards once you can solve 70-80% of mediums in a pattern area.
You've solved 200 LeetCode problems. Mostly easies, some mediums, a few hards you tapped out on after ten minutes. The solved count keeps climbing. It feels like progress. Your LeetCode profile practically glows.
Then the interview starts. The problem looks vaguely familiar. You recognize a few words. You start writing. Thirty minutes later you're building the wrong thing with no time to pivot.
This isn't a volume problem. It's a difficulty problem. LeetCode medium problems are where the real preparation happens, and the reason is more specific than "mediums are interview-level." It comes down to a skill distinction that most prep guides never name.
Easy Problems Tell You the Answer Before You Start
Almost every easy LeetCode problem is spoiled by its own text. Not because you looked up the solution. Because the problem announces its category. LeetCode might as well include a sticky note.
"Given a sorted array, find if a target exists." The word sorted in a find context is basically a label: binary search. You don't have to identify the right approach. You recognize a pattern and apply it. Those are different cognitive operations.
The critical skill in a coding interview is identification: given a blank-page problem with no labels, figuring out which approach fits. Easy problems train application: given the approach, write it out. Practicing application does not build identification. You can grind 400 easy problems and still blank on mediums, because you never trained the actual skill that matters.
This is the easy-to-medium wall. You hit it when problems stop announcing their category. Suddenly you're reading constraints, trying to figure out what the problem is even asking structurally. You don't know what to reach for. That gap is real, and it doesn't close through volume on easies. If you want a broader argument for why raw volume isn't the answer, you're probably practicing LeetCode wrong covers that ground.

The easy problems are going great. The interview will be fine.
Pattern Identification Is the Skill Interviews Test. Mediums Build It.
When you see "find the minimum number of conference rooms required for a list of meeting intervals," nothing in that sentence points at a heap. You have to reason through it: you're processing intervals in sorted order and need to track the earliest time a room frees up. Cheapest comparison at each step means a min-heap sorted by end time.
The structural reasoning was the lesson. Not the heap code. Deriving the right data structure from the constraints is the skill, and mediums force you to do that cold. A few structural patterns to internalize:
- Contiguous subarray with a bounded constraint usually points at a sliding window
- "Find path / count ways" in a grid usually points at dynamic programming
- "Find minimum / maximum across overlapping intervals" usually points at a heap
One engineer who practices identification deliberately on 100 problems will typically outperform someone who grinds 400 without that focus. Coverage of distinct patterns matters more than raw count.
Manu Kapur's productive failure research shows why the struggle matters: when learners attempt a problem before instruction, retention is significantly deeper than instruction-first approaches. But the problem has to be tractable. Too far out of reach and the failure is just failure. Mediums sit in the zone where the gap to an optimal solution is small enough to bridge in a debrief.
Interviews Are Built Around LeetCode Medium Problems
The data matches the intuition. Meta's tagged LeetCode problem set breaks down to roughly 26% easy, 60% medium, and 14% hard. Most FAANG companies follow a similar shape. Medium is the signal round.
Medium problems dominate interviews because they're where candidate variance shows up most clearly. Easy problems collapse variance: almost everyone solves them. Hard problems introduce noise: they sometimes require niche algorithms, and failing them reveals less about general problem-solving ability. Mediums reliably separate candidates who can identify patterns under pressure from candidates who can't.
Hard problems appear in full loops, especially at Google and Meta and especially for senior roles. But the typical interview is built on mediums. If your prep is mostly easies and hards, you're not practicing the thing you'll be evaluated on.
Hard Problems Are Efficient Per-Problem. Not for Beginners.
This is where it gets counterintuitive. An analysis of roughly 700 interviewers by interviewing.io found that each 50 hard problems solved correlates with about 7 percentage points of interview success improvement, versus 3 points per 50 mediums. Per problem, hards are more efficient.
So why not skip to hards?
Because that efficiency number assumes you're completing hards in a way that actually builds skill. Early in your prep, you won't be. You try for 15 minutes, you have no entry point, you read the solution. It uses suffix arrays, or Aho-Corasick, or bitmask DP over subsets. Your brain quietly exits the chat. You follow the explanation at a high level. You move on feeling vaguely like you learned something. You didn't.
The debrief after an early hard problem is empty, because the gap between where you were and the optimal is too wide to bridge in a single session. You can't extract the lesson from a solution you couldn't have gotten close to independently. Mediums leave a smaller gap. You can look at an optimal solution, see exactly what structural signal you should have caught, and make that lesson explicit.
Hard problems belong after you've built a real medium base. Once you can solve 70-80% of mediums in a pattern area within 35 minutes, adding hards will stress-test your edge case reasoning and push you to compose multiple techniques. That's a useful exercise. The mistake is treating hards as your primary training vehicle before that foundation exists.
How to Practice Mediums So the Learning Sticks
Set a 35-minute timer. It will judge you. That's the point. Turn off tags and hints. Start with the constraints, not the examples. Ask: what's the access pattern here? What structure would make this efficient? Form a hypothesis and start implementing, even if you feel uncertain.
If you're stuck at 20 minutes, don't reach for the solution yet. Spend 10 more minutes trying to confirm or falsify your approach with a small manual trace. The struggle matters. Robert Bjork's desirable difficulties framework explains why: the discomfort of working through uncertainty is not inefficiency. It is the mechanism by which learning becomes durable. Effortful generation and retrieval build stronger memory traces than recognition alone.
The debrief is more important than the solve. After you finish or time out, compare your approach to an optimal one and identify the structural signal you should have caught. Write it explicitly: "In problems with a bounded window over a contiguous range, the right structure is usually a sliding window, not nested loops." Yes, actually write it down. Future you, staring at a whiteboard, will be grateful.
Don't block practice by pattern category. Mixing a sliding window session with a BFS session, then DP, then heaps, feels slower but builds better transfer. Research on interleaved practice consistently shows that blocked practice improves short-term acquisition while interleaved practice improves long-term retention and transfer to novel problems. Transfer is what you need in an interview you've never seen before.
SpaceComplexity runs voice-based DSA mock interviews on medium-difficulty problems and gives rubric-based feedback on pattern recognition, communication, and follow-up handling. That's the format closest to an actual interview loop.
Where Easy and Hard Problems Still Help
Easy problems aren't useless. When you're learning a new data structure from scratch, they're the right starting point. You need mechanical vocabulary before you can practice identification. Use a handful of easies to understand how a heap inserts and extracts, how path compression in Union-Find actually works, how to reverse a linked list without losing the tail. Get the mechanics working. Then move to mediums.
Hard problems help after you have a genuine medium base. The rough target: 60-70% of practice on mediums, 20-25% on easies concentrated in initial concept learning, and 10-15% on hards added after you've built a foundation in each pattern area.
The mistake isn't doing some easies or some hards. The mistake is letting them become your primary practice mode.