Why You’re Forgetting Every Leetcode Problem You Solve (And How to Fix It)



This content originally appeared on DEV Community and was authored by anjan-dutta

The Problem Nobody Talks About

You’ve solved 150 Leetcode problems. You feel prepared. Then in your actual interview, someone asks a two-pointer question and your mind goes blank. “Wait, I’ve definitely solved this pattern before…”

Sound familiar?

I experienced this exact scenario after grinding through NeetCode 150. I’d “completed” the list, but when faced with variations of problems I’d already solved, I couldn’t recognize the patterns.

The issue isn’t that you’re bad at coding. It’s that your brain is working exactly as designed.

The Forgetting Curve Is Brutal

Hermann Ebbinghaus discovered in 1885 that we forget approximately:

  • 50% of new information within 1 hour
  • 70% within 24 hours
  • 90% within a week

When you solve a Leetcode problem once, you’re fighting against biology. Your brain treats it as “one-time knowledge” and discards it to make room for other information.

This explains why:

  • You can solve a problem today but struggle with it next month
  • Patterns don’t “click” during interviews despite hours of practice
  • You need to re-learn the same approaches repeatedly

The Solution: Spaced Repetition

Spaced repetition is a learning technique where you review information at increasing intervals. It’s used successfully for:

  • Language learning (Anki, Duolingo)
  • Medical school memorization
  • Long-term knowledge retention

The key insight: Review just before you’re about to forget.

Each successful recall strengthens the memory pathway. After 3-5 reviews, pattern recognition becomes automatic.

Why This Works for Coding Interviews

Most Leetcode grinders approach problems like this:

  • Solve problem once
  • Mark as “completed”
  • Never see it again
  • Forget everything

Better approach:

  • Solve problem (Day 0)
  • Resolve from memory (Day 1)
  • Resolve again (Day 3)
  • Resolve again (Day 7)
  • Continue at increasing intervals

After this process, when you see a new problem, your brain automatically thinks: “This looks like a sliding window problem” or “I should use two pointers here.”

Building an Automated Solution

Manual tracking in spreadsheets is tedious and error-prone. I built a tool that automates the entire spaced repetition workflow for Leetcode.

Key Features:

1. Automatic Scheduling When you mark a problem as complete, it automatically schedules your first review for tomorrow. No manual date tracking.
2. Adaptive Intervals After each review, you rate the difficulty:

  • Easy: Solved quickly and confidently → Longer interval (1.5x)
  • Medium: Needed some thinking → Standard interval
  • Hard: Struggled or needed hints → Shorter interval (0.7x)

3. Visual Indicators Problems due for revision are highlighted in your list. Overdue problems appear in a separate urgent section with red styling.

4. Pattern-Based Organization Problems are grouped by patterns (Two Pointers, Sliding Window, etc.) so you can see your mastery of each approach.

The Results

After implementing this system for myself:

Before spaced repetition:

  • Solved 150+ problems
  • Couldn’t recall solutions after 2 weeks
  • Struggled with pattern recognition in interviews
  • Felt like I was constantly re-learning

After spaced repetition:

  • Mastered 50 core problems through multiple reviews
  • Instant pattern recognition on new problems
  • Confident identifying which approach to use
  • Solutions stick long-term


The key difference: Quality over quantity. It’s better to truly master 50 problems through 3-5 reviews than to solve 200 problems once and forget them all.

Technical Implementation

For those interested in the technical details:

Stack:

  • Frontend: React with Tailwind CSS
  • Backend: Node.js + Express
  • Database: MongoDB
  • Scheduling Algorithm: Custom interval calculation based on review count and difficulty

Spaced Repetition Algorithm:

const REVISION_INTERVALS = {
  1: 1,     // First review: 1 day
  2: 3,     // Second review: 3 days  
  3: 7,     // Third review: 1 week
  4: 14,    // Fourth review: 2 weeks
  5: 30,    // Fifth review: 1 month
  6: 90,    // Sixth review: 3 months
  7: 180,   // Seventh review: 6 months
  8: 365    // Eighth+ review: 1 year
};

const calculateNextRevision = (reviewCount, difficulty) => {
  let interval = REVISION_INTERVALS[reviewCount] || 365;

  // Adjust based on difficulty
  if (difficulty === 'easy') interval *= 1.5;
  if (difficulty === 'hard') interval *= 0.7;

  const nextDate = new Date();
  nextDate.setDate(nextDate.getDate() + Math.floor(interval));
  return nextDate;
};

Key Design Decisions:

  • No browser storage: Everything syncs to the backend so you can access your schedule from any device
  • Timezone handling: All dates normalized to start of day to avoid timezone confusion
  • Overdue detection: Problems past their review date appear in a separate urgent section
  • Progressive intervals: Start aggressive (1 day) then exponentially increase as mastery improves

Getting Started

The workflow is simple:

  1. Solve a problem on Leetcode
  2. Mark it complete in the tracker → Automatically scheduled for review tomorrow
  3. When due, resolve the problem → Rate difficulty (Easy/Medium/Hard)
  4. System calculates next review date → Based on your rating
  5. Repeat until pattern becomes automatic

Pro Tips:

  • Start with 20 core problems across different patterns before adding more
  • Review problems from memory before looking at solutions
  • Write notes about key insights and pattern recognition cues
  • Don’t skip overdue reviews – they compound quickly
  • Focus on understanding patterns, not memorizing code

Common Questions

Q: How is this different from just using Anki?
A: Anki requires manual setup and doesn’t integrate with Leetcode. This tool automatically tracks which problems you’ve solved, schedules reviews, and provides pattern-based organization specific to coding interviews.
Q: Won’t this take more time than just solving new problems?
A: Initially yes, but the ROI is massive. Spending 15 minutes/day on reviews gives you genuine mastery versus the illusion of progress from solving 100+ problems you’ll forget.
Q: What if I fall behind on reviews?
A: The system shows overdue problems in a separate urgent section. Start there, even if it means pausing new problems temporarily. Catching up is better than accumulating more debt.
Q: How many problems should I solve before starting reviews?
A: Start reviewing after your first 10-20 problems. Don’t wait until you’ve solved hundreds – that makes the review backlog overwhelming.

The Real Impact

This isn’t just about interview prep. Spaced repetition teaches you how to actually learn programming concepts rather than temporarily memorizing them.
The difference between:

  • Exposure: “I’ve seen this before”
  • Recognition: “This is a two-pointer problem”
  • Mastery: “Here’s the exact approach and why it works”

Most people stop at exposure. Spaced repetition gets you to mastery.

Try It Yourself

I’ve made this tool available at https://dsaprep.dev/tracker, You can start tracking Leetcode problems to see if the approach works for you.

Final Thoughts

Grinding Leetcode without a retention strategy is like filling a leaky bucket. You’re spending hours solving problems that your brain will discard within days.

Spaced repetition plugs the leak. It works with your brain’s natural learning patterns instead of fighting against them.

The next time someone asks why you’re “wasting time” resolving old problems instead of solving new ones, you’ll know: You’re building long-term mastery, not collecting short-term checkmarks.

What’s your approach to retaining coding patterns? Drop a comment below.

P.S. If you found this helpful, I’m building more features around pattern recognition and interview prep. Follow me here on DEV for updates.


This content originally appeared on DEV Community and was authored by anjan-dutta