Spaced Repetition for LeetCode

A step-by-step guide to using spaced repetition for LeetCode prep. Stop re-learning problems and start building permanent pattern recognition.

leetcode spaced-repetition study-tips

You’ve solved 200 problems. How many could you re-solve from scratch right now? Be honest.

Without a system, most of what you practice fades within days. The only question is whether you notice before or during your interview.

Spaced repetition is the system that fixes this. Here’s exactly how to use it for LeetCode.


Why spaced repetition works for LeetCode

Spaced repetition is a study method where you review material at increasing intervals. Instead of solving a problem once and moving on, you re-solve it on a schedule: tomorrow, then in 3 days, then a week, then a month. Each successful review strengthens the memory and pushes the next review further out. Each failure pulls it back in.

Most people’s workflow fights against this: solve a problem, check the box, never touch it again, wonder why they can’t recognize patterns in interviews. Spaced repetition breaks that cycle by fighting the forgetting curve — the exponential decay of memories over time:

The forgetting curve — with and without review:
100% 75% 50% 25% Day 0 Day 10 Day 20 Day 30 Without review With spaced repetition

Without review, you lose most of what you learned within days. With reviews timed to catch the decay, each repetition makes the memory more durable and the intervals longer.

The key insight for LeetCode:

You're not memorizing solutions. You're building pattern recognition. Spaced repetition gives you enough reps to make patterns automatic — without wasting time on problems you already own.

Instead of solving 500 problems shallowly, you solve 75–150 — think Blind 75 or NeetCode 150 — and actually retain them all.

LeetSRS is a free Chrome extension that adds spaced repetition directly to LeetCode — no spreadsheets, no Anki cards, no app switching.

Try LeetSRS free

How to use spaced repetition for LeetCode prep

1. Study by pattern, not by difficulty

Stop sorting by Easy → Medium → Hard. That order feels structured, but from a learning perspective it’s random — you’re jumping between sliding window, graph traversal, and dynamic programming with no connective tissue.

Instead:

  1. Pick one pattern (e.g., sliding window, two pointers, BFS/DFS)
  2. Solve 3–5 problems that use it, back to back
  3. Move to the next pattern once you’ve seeded the first

The problems reinforce each other because you’re seeing the same underlying structure from different angles.

✗ RANDOM ORDER

Monday: Two Sum (hash map). Tuesday: Number of Islands (BFS). Wednesday: Climbing Stairs (DP). Thursday: you've already forgotten how you approached Two Sum.

✓ PATTERN BLOCKS

Monday–Wednesday: three sliding window problems back to back. The pattern clicks. Thursday: start two pointers. Your review queue starts mixing both patterns by Friday.

2. Rate yourself after every solve

After you solve a problem (or fail to), give yourself an honest rating. This is the signal the scheduling algorithm uses to decide when you see the problem next.

Again

Couldn't solve it. Needed to look at the answer. Review again immediately.

Hard

Got there eventually, but it was rough. Short interval.

Good

Solved it with some thought. Normal interval — this is your baseline.

Easy

Solved it cold. Push the next review way out — you own this one.

The temptation is to rate everything “Good.” Resist it. If you peeked at a hint, that’s “Again.” If it was trivial, that’s “Easy.” Honest ratings mean the algorithm spends your time where it actually matters.

3. Review on schedule

Here’s what a typical review schedule looks like for a single problem:

Review #WhenWhat’s happening
1Day 1Re-solve from scratch. Memory is fresh.
2Day 3–4Starting to fade — this review is critical.
3Day 7–10Getting easier. Interval grows.
4Day 20–30Barely have to think. Almost locked in.
5+Day 60+Permanent. Quick confirmation review.

The intervals aren’t fixed — they adapt based on your ratings. Rate “Again” and you’ll see the problem tomorrow. Rate “Easy” three times and it might not come back for months.

As you add more problems, your daily review queue becomes a mix of patterns at different stages. This interleaving is where the deepest learning happens — you stop just executing a pattern you’ve been drilling and start identifying which pattern to apply. That’s the skill interviews actually test.

Tracking intervals manually is a solved problem. LeetSRS uses the FSRS algorithm to schedule your reviews automatically — just rate each problem after you solve it and the extension handles the rest.

4. Re-solve, don’t re-read

This is where most people sabotage the whole system. When a problem comes up for review, they open their old solution and read through it. “Yeah, that makes sense.” Close the tab. Forget it by Friday.

Reading and problem-solving use completely different cognitive pathways. Reading your old code gives you a feeling of understanding without actually testing whether you can reproduce it.

✗ PASSIVE REVIEW

Open your old sliding window solution. Read through it. Think "yeah, I get it." Close the tab. Can't reproduce it three days later.

✓ ACTIVE RECALL

Open a blank editor. No notes, no old code. Solve it from scratch. Struggle a bit. Actually remember it next time.

The rule: blank editor, no notes, no peeking. If you can’t solve it within 10–15 minutes, that’s useful data — the interval was too long. Rate it “Again” and you’ll see it sooner.

When you rate “Again”: study the solution, but don’t just skim it. Trace through the logic and understand why each step works. Then close it and re-attempt from scratch before ending your session. This same-day retry is how you convert a blank stare into a working memory.

Mistakes that kill the system

Adding too many new problems. Your review queue grows with every problem you add. If you’re adding 5 new problems a day, your reviews will overwhelm you within two weeks. Start with 1–2 new problems per day and let reviews take priority.

Skipping reviews when you’re busy. One skipped day compounds. The problems you should have reviewed start decaying, and suddenly you’ve got a backlog where you’ve forgotten the approach. If you’re short on time, do reviews and skip new problems — not the other way around.

Rating dishonestly. If you peeked at a hint or your old solution, that’s “Again,” not “Good.” Inflating your rating pushes the interval too far, and you forget it before the next review. Garbage in, garbage out.

Reviewing by reading. Already covered this, but it’s worth repeating because it’s the most common mistake. Recognition feels like recall. It isn’t. Solve from a blank editor every time.


What a typical day looks like

After a week or two, your daily practice has a rhythm:

Sample daily queue:
Review

3Sum — rated "Hard" 2 days ago. Re-solve from scratch, rate again.

Review

Valid Anagram — rated "Good" 5 days ago. Quick one, shouldn't take long.

Review

Best Time to Buy and Sell Stock — rated "Easy" twice already. Three minutes, done.

New

Container With Most Water — fresh two pointers problem. Solve and rate.

Reviews first (20–40 minutes), then 1–2 new problems. The reviews are fast because you’ve seen these before. Most of your effort goes into new problems and the ones you rated “Again.”


Best spaced repetition tools for LeetCode

The best review system is whichever one you’ll actually use consistently. Here are your options:

Spreadsheet / Notion — you manually track problem names, dates, and intervals. Works for about a week before the overhead kills the habit. No automatic scheduling, so you're doing the algorithm's job by hand.

Anki — excellent algorithm, wrong medium. You're pasting problem screenshots into flashcards, grading yourself on cards you can't run code against, and switching between apps constantly. The friction adds up.

LeetSRS — a free, open-source Chrome extension that adds spaced repetition directly to LeetCode. Rate problems on the page after solving them. Reviews are scheduled automatically using FSRS (the same algorithm behind Anki's most popular scheduling plugin — but preconfigured, so you don't touch settings). No app switching, no manual tracking, syncs via GitHub.

The reason most review systems die is friction. Every step between “I want to review” and “I’m solving a problem” is a step where you might quit.


What to expect

Week 1–2: It feels slow. You’re reviewing “easy” problems instead of grinding new ones. This is normal and correct.

Week 3–4: Your review queue starts mixing patterns. You solve a sliding window problem, then a graph problem, then a DP problem. You notice you’re identifying patterns faster in new problems.

Month 2+: Problems you used to struggle with take five minutes. Your daily reviews are mostly quick confirmations with a few tough ones mixed in. New problems feel easier because you have a deep library of patterns to draw from.

The math: 75–150 problems reviewed to the point of automatic recognition will outperform 500 problems solved once and forgotten.

TL;DR — Start today

Pick one pattern. Solve 3 problems. Set up your review system — LeetSRS handles the scheduling automatically. Do your reviews before new problems. Rate yourself honestly. Two weeks in, you'll already feel the difference in your reviews.