Originally published on LeetCopilot Blog
Struggling with time on LeetCode? Here's how to improve your problem-solving speed with realistic benchmarks, targeted techniques, and a 4-week improvement plan.
I used to take 90 minutes to solve Medium problems. Sometimes longer. I'd stare at the screen, try random approaches, and eventually Google the solution.
After 6 months of deliberate practice, I got that down to 25-30 minutes for most Mediums. The difference wasn't raw intelligence—it was technique.
Speed matters in interviews. You typically get 45 minutes per problem, including discussion. If you can't reach a working solution in 25-30 minutes, you won't have time for optimization, edge cases, or follow-up questions.
Here's what I learned about getting faster—and what doesn't work.
One-Minute Decision: What's Slowing You Down
If you can't start problems (blank page syndrome):
You're missing pattern recognition. Focus on learning patterns, not grinding random problems.
If you start okay but get stuck midway:
You're probably overcomplicating. Practice the "brute force first, optimize second" approach.
If you solve problems but too slowly:
Your implementation speed is the bottleneck. Practice typing solutions without looking anything up.
If you run out of time debugging:
You're writing buggy code. Slow down during implementation to prevent errors, not fix them.
If you freeze when the problem is novel:
You need more pattern exposure. 100+ curated problems, not random grinding.
How Fast Should You Be? (Realistic Benchmarks)
Target Times for Interview Readiness
| Difficulty | Target Time | What That Includes |
|---|---|---|
| Easy | 10-15 min | Understand, code, test, discuss complexity |
| Medium | 20-30 min | Understand, approach, code, test, discuss |
| Hard | 35-45 min | Same, but interviewer often helps guide you |
Where Your Time Should Go
For a 25-minute Medium problem:
| Phase | Time | What's Happening |
|---|---|---|
| Read + Understand | 2-3 min | Clarify inputs, outputs, constraints |
| Think + Approach | 5-7 min | Identify pattern, discuss with interviewer |
| Code | 10-12 min | Implement solution |
| Test + Debug | 5-8 min | Walk through example, fix bugs |
The key insight: If your "Think" phase takes 15+ minutes, you'll run out of time for implementation. Pattern recognition needs to be fast.
How to Measure Your Current Speed
Simple tracking method:
- Start a timer when you read the problem
- Stop when your solution passes all test cases
- Log: Problem name, difficulty, time, whether you needed hints
Do this for 20 problems. Calculate your average by difficulty. That's your baseline.
Why You're Slow: The 5 Most Common Causes
Cause #1: Missing Pattern Recognition
The symptom:
You read a problem and have no idea how to start. You try random approaches—brute force loops, hoping something works.
Why it happens:
You haven't internalized the common patterns. There are ~14-16 core patterns that appear in 90% of interview problems. Without them, every problem feels new.
The fix:
Study patterns explicitly. NeetCode organizes problems by pattern. Do 5-10 problems per pattern before moving on.
The core patterns to know:
- Two Pointers
- Sliding Window
- Fast & Slow Pointers
- Hash Map (counting, lookup)
- Stack (monotonic, matching)
- Binary Search
- BFS/DFS (trees)
- BFS/DFS (graphs)
- Backtracking
- Dynamic Programming (1D, 2D)
- Heap/Priority Queue
- Greedy
- Intervals
- Trie (for string problems)
Time to fix: 4-6 weeks of pattern-focused practice
Cause #2: Jumping to Optimization Too Early
The symptom:
You spend 20 minutes trying to find the optimal solution without writing any code. Then you run out of time.
Why it happens:
You're trying to be smart instead of systematic. In interviews, a working brute force is better than an incomplete optimal solution.
The fix:
Always start with brute force. Code it. Then optimize if time permits.
The process:
- Think of the simplest solution that works (even if O(n²) or worse)
- Verbally explain it to the interviewer
- If they say "okay, code it," code it
- If they push for better, THEN optimize
Why this works:
- You have working code early (reduces stress)
- The brute force often reveals optimization paths
- Interviewers can give hints if you're stuck on optimization
Cause #3: Slow Implementation
The symptom:
You know the approach but take 20+ minutes to code it. You look things up (syntax, library functions). You make typos. You write code, then rewrite it.
Why it happens:
Implementation isn't muscle memory yet. You're thinking about syntax instead of logic.
The fix:
Practice typing solutions from scratch. After solving a problem, close the solution and re-implement it from memory. Do this until it's automatic.
The drill:
- Solve a problem
- Wait 30 minutes
- Re-implement without looking
- Repeat until you can write it in 5 minutes
Focus areas for speed:
- Common patterns (two-pointer loop, BFS template, etc.)
- Language-specific idioms (Python list comprehensions, etc.)
- Edge case templates (empty array, single element, etc.)
Cause #4: Debugging Takes Forever
The symptom:
You write code, it fails, and you spend 15+ minutes figuring out why. Off-by-one errors. Wrong variable names. Logic bugs.
Why it happens:
You're writing fast but sloppy. Then you pay the price in debugging.
The fix:
Slow down during implementation. Check each line as you write. It's faster to write carefully once than to debug carelessly twice.
Specific techniques:
- Trace through with an example before running
-
Use meaningful variable names (not
i,jfor everything) - Check loop bounds before running (off-by-one is the #1 bug)
- Handle edge cases first (empty array, null input)
Cause #5: Problem Reading is Slow
The symptom:
You spend 5-10 minutes re-reading the problem, missing constraints, misunderstanding what's being asked.
Why it happens:
You're reading passively instead of actively extracting information.
The fix:
Use a reading checklist:
- Input: What am I given? (types, sizes)
- Output: What am I returning?
- Constraints: Array size? Value range? This tells you acceptable time complexity.
- Examples: Walk through one example to confirm understanding.
- Edge cases: Empty? Single element? Already sorted?
Time saved: 2-3 minutes per problem (adds up over an interview)
The Speed Improvement Techniques
Technique 1: Pattern Recognition First
The practice:
Before coding, explicitly name the pattern: "This is a sliding window problem" or "This is backtracking."
Why it works:
Naming the pattern narrows your search space. Instead of trying everything, you're applying a known template.
The drill:
For 2 weeks, before each problem, write down:
- What pattern do I think this is?
- Why do I think that?
- What's the template for this pattern?
Then solve the problem. Review: was your pattern guess correct?
Technique 2: Time-Box Your Approach Phase
The practice:
Give yourself exactly 5 minutes to identify an approach. If you don't have one, fall back to brute force.
Why it works:
Prevents the trap of thinking forever without coding. Action beats paralysis.
The rule:
- 5 minutes for Mediums
- 3 minutes for Easies
- 10 minutes for Hards
After the time box, you must have SOMETHING to code—even if suboptimal.
Technique 3: Build a Problem-Solving Template
The practice:
Use the same structure for every problem:
1. UNDERSTAND (2-3 min)
- What are inputs? Outputs?
- What are constraints?
- Walk through one example
2. APPROACH (5 min max)
- What pattern applies?
- What's the brute force?
- What's the optimal?
- State time/space complexity
3. CODE (10-15 min)
- Write clean, commented code
- Handle edge cases first
4. TEST (5 min)
- Trace through with example
- Test edge cases
- State complexity again
Why it works:
Structure prevents wandering. You always know what step you're in and when to move on.
Technique 4: Practice Implementation Speed
The practice:
Re-implement solved problems without looking at the solution.
The specific drill:
- Solve a new problem (take your time)
- Understand the solution thoroughly
- Wait 1 hour
- Re-implement from memory
- Wait 1 day
- Re-implement again
Target: Implement common patterns in under 5 minutes without looking anything up.
Patterns to speed-drill:
- Two-pointer template
- Sliding window template
- Binary search variations
- BFS template
- DFS template
- Stack-based matching
- Basic backtracking structure
Technique 5: Reduce Context Switching
The practice:
Focus on one pattern or problem type for a session. Don't jump between trees, dp, and graphs in the same hour.
Why it works:
Your brain builds pattern recognition faster when problems are clustered. Switching destroys momentum.
The practice structure:
- Monday: Two Pointers problems (5-6)
- Tuesday: Sliding Window problems (5-6)
- Wednesday: Tree problems (5-6)
- etc.
The 4-Week Speed Improvement Plan
Week 1: Baseline + Pattern Recognition
Goal: Establish baseline and start pattern learning
Activities:
- Day 1-2: Solve 10 problems across categories. Time yourself. Calculate baseline.
- Day 3-7: Focus on Patterns 1-5 (Two Pointers, Sliding Window, Fast/Slow, Hash Map, Stack)
Problems per day: 3-4 (quality over quantity)
Tracking: Log time for each problem
Week 2: Implementation Speed
Goal: Get faster at coding known patterns
Activities:
- Day 1-3: Re-implement 10 problems from Week 1 without looking
- Day 4-7: New problems with strict time boxes (Easy: 15 min, Medium: 25 min)
The rule: When time runs out, stop. Review the solution. Re-implement tomorrow.
Problems per day: 4-5
Week 3: Approach Speed
Goal: Get faster at identifying the right approach
Activities:
- Day 1-3: "Pattern identification drill" — Read problem, guess pattern, check in <2 min
- Day 4-7: Mixed difficulty problems with approach time box (5 min to decide)
Problems per day: 5-6
Focus: If pattern selection takes >5 min, you need more pattern exposure (not more thinking time)
Week 4: Full Simulation
Goal: Put it together under interview conditions
Activities:
- Day 1-6: 2-3 problems daily, fully timed, no hints
- Day 7: Mock interview (Pramp or friend)
Time targets:
- Easy: <15 min
- Medium: <30 min
- Hard: <45 min (or brute force + partial optimization)
Tracking: Compare to Week 1 baseline
Common Speed Mistakes
Mistake #1: Grinding Random Problems
What happens:
"I'll just do 500 LeetCode problems and I'll get fast."
Why it fails:
Random problems give random practice. You don't build pattern recognition because patterns aren't clustered.
The fix:
Curated, pattern-organized practice. NeetCode 150 or similar.
Mistake #2: Never Timing Yourself
What happens:
"I'll just practice until I'm ready." You solve problems with no clock.
Why it fails:
You don't know your actual speed. Interview day is the first time you're under time pressure.
The fix:
Always time yourself. Use the benchmarks above.
Mistake #3: Looking Things Up During Practice
What happens:
"I'll just Google how to implement a heap real quick."
Why it fails:
You can't Google during interviews. If you practice with lookups, you'll panic without them.
The fix:
Practice without references. If you can't remember, complete the problem, then drill that gap.
Mistake #4: Only Solving Problems Once
What happens:
You solve a problem, move on, never revisit it.
Why it fails:
You remember the solution, not the pattern. You can't generalize.
The fix:
Re-implement solved problems. Spaced repetition builds speed.
What People Actually Ask
"How long should a Medium LeetCode take?"
Short answer: 20-30 minutes for interview readiness.
Breakdown:
- 5 min to understand and identify approach
- 15 min to code
- 5-10 min to test and discuss
If you're consistently at 40+ minutes, focus on pattern recognition first.
"Why am I so slow compared to others?"
Short answer: You're probably comparing to people who have solved similar problems before.
When someone solves a problem in 10 minutes, they've likely seen the pattern before. Speed comes from recognition, not intelligence.
The fix: Solve more problems in clustered patterns. Speed will come.
"Should I time myself even when learning?"
Short answer: Yes, but loosely.
When learning a new pattern, give yourself extra time. But still track:
- How long without hints?
- How long did hints take?
- Where did I get stuck?
This tells you what to practice.
"Is it okay to skip Hard problems?"
Short answer: For most interviews, yes.
Hard problems rarely appear in interviews (they're too hard to evaluate in 45 min). Focus on Medium-level speed first.
Exceptions: Staff+ roles, specific companies known for Hard problems.
"How do I get faster at implementation specifically?"
Short answer: Re-implement solved problems from memory.
The drill:
- Solve a problem
- Close the solution
- Re-implement from scratch
- Compare
- Repeat until it's muscle memory
Do this for 10-15 core problems. Implementation speed will jump significantly.
Final Verdict: The Speed Stack
After going from 90-minute Mediums to 25-minute Mediums, here's what actually worked:
The Mistakes I Made
Mistake #1: Grinding random problems
- What happened: Solved 100+ problems but couldn't recognize patterns
- Lesson: Pattern-focused practice beats random grinding
Mistake #2: Never timing myself
- What happened: First mock interview was a disaster—I ran out of time
- Lesson: Practice under time pressure from the start
Mistake #3: Looking things up during practice
- What happened: Knew solutions conceptually but couldn't implement without references
- Lesson: Practice without Google
What Actually Improved My Speed
- Pattern recognition drills — Guess the pattern before solving
- Time-boxed approaches — 5 minutes max to choose an approach
- Implementation re-drilling — Re-implement solved problems from memory
- Structured template — Same 4-step process for every problem
- Clustered practice — One pattern per day, not random mix
The Speed Benchmarks
| Where I Started | Where I Ended | Timeframe |
|---|---|---|
| Easy: 30 min | Easy: 10 min | 4 weeks |
| Medium: 90 min | Medium: 25-30 min | 8 weeks |
| Hard: Often incomplete | Hard: Brute force + partial | 12 weeks |
One-Minute Decision Guide
If you're just starting:
Time yourself on 10 problems to get a baseline. Then follow the 4-week plan.
If Easy problems take 30+ min:
You need fundamental pattern practice, not speed drills.
If you know approaches but code slowly:
Focus on implementation re-drilling.
If you get stuck on novel problems:
You need more pattern exposure (100+ curated problems).
If you debug forever:
Slow down during implementation. Prevention beats debugging.
Last updated: January 13, 2026. Based on personal speed improvement journey (6 months of deliberate practice), timing data from 200+ problems, and feedback from engineers who improved their interview speed. Your improvement rate may vary based on starting point.
If you're looking for an AI assistant to help you master LeetCode patterns and prepare for coding interviews, check out LeetCopilot.
Top comments (0)