HomeDSA HubPreparation Guide

DSA problem-solving roadmap

Move from practising familiar questions to solving new problems independently. Learn patterns, revisit what you have struggled with, and practise explaining your reasoning.

Solving hundreds of problems is not enough if you cannot recall an approach when a new problem appears. The goal is not just to finish Blind 75 or NeetCode 150—it is to understand patterns, remember approaches, and derive solutions independently.

Learn, practise, revise, and retain

  1. Understand the problem before coding

    Spend 5–10 minutes understanding what the problem asks before writing code. Careful problem framing helps you choose a sound approach instead of rushing into an implementation.

    • Identify the input, output, and constraints.
    • Work through a small example manually.
    • Consider edge cases.
    • Think of a brute-force approach first.
    • Analyze its time and space complexity.
    • Look for a more efficient approach.

    Keep in mind: Do not jump straight to the solution or watch an explanation immediately.

  2. Follow the 30-minute problem-solving rule

    Give a new problem an honest independent attempt. If you get stuck, use hints to move forward without giving up the reasoning process.

    • Try solving it independently for 20–30 minutes.
    • If stuck, ask for a hint rather than the complete solution.
    • If necessary, study the explanation and understand why it works.
    • Close the solution and implement it from memory.
    • Revisit the problem later without looking at your notes.

    Keep in mind: The objective is to learn how to derive the solution, not merely reproduce code.

  3. Maintain smart DSA notes

    You do not need lengthy notes for every question. Keep a concise record of important patterns and mistakes in a format you will consistently revisit.

    • Problem name and link
    • Pattern, such as Sliding Window, Two Pointers, or Binary Search
    • Key observation: what makes the solution work?
    • Approach: the main steps in plain language
    • Time and space complexity
    • Mistake made: what did you overlook?
    • Recall trigger: what clue in a future problem should remind you of this pattern?

    Keep in mind: Use Notion, Google Sheets, a notebook, or a simple Markdown file—whichever you can maintain.

Follow a revision cycle

Revisiting problems helps move patterns into long-term recall. Treat these intervals as a starting point, not a strict rule: if recall is easy, increase the gap; if you struggle, review sooner.

WhenWhat to do
Day 0Solve the problem and understand the pattern.
Day 1Recall the approach without opening the solution.
Day 3Solve it again with minimal help.
Day 7Implement it independently.
Day 14Explain the approach and complexity aloud.
Day 30Attempt it again under interview conditions.

Track the problems you struggle with

A simple tracker makes it easier to decide what to revisit and see whether you can solve a problem without help.

FieldPurpose
ProblemIdentify the question.
TopicGroup related patterns.
StatusTrack New, Learning, or Mastered.
DifficultyRecord Easy, Medium, or Hard.
Last revisedTrack when you last revisited it.
Next revisionPlan your next attempt.
MistakeRemember what went wrong.
Independent solveRecord Yes or No.

Do not mark a problem as mastered just because you understood its explanation. Mark it mastered when you can solve it independently and explain why the approach works.

Practise beyond DSA sheets

Use structured sheets to build coverage, then gradually try unfamiliar problems and mixed-topic practice where the pattern is not given in advance.

  • Blind 75

    Build a foundation in important interview patterns.

    Explore Blind 75
  • NeetCode 150

    Expand pattern coverage and practise common variations.

    Explore NeetCode 150
  • LeetCode

    Apply concepts to unfamiliar problems and variations.

    Browse LeetCode problems
  • Timed and mixed-topic practice

    Build speed and decision-making under pressure, and practise identifying the right pattern without knowing the topic in advance.

  • Mock interviews

    Practise explaining your reasoning while coding, as you would in an interview.

A practical 90-minute session

Adjust the timing to the problem and the time you have available. The purpose is to make room for independent problem-solving, review, and reflection.

  1. 10 minutesRevise previously attempted problems.
  2. 35 minutesSolve one new problem independently.
  3. 15 minutesStudy hints or an explanation if necessary.
  4. 20 minutesReimplement the solution and understand its complexity.
  5. 10 minutesUpdate your notes and revision tracker.

Test whether you actually remember

Before considering a problem learned, check whether you can:

  • Can I explain the approach without looking at the solution?
  • Can I identify the pattern from the problem statement?
  • Can I implement it from scratch?
  • Can I explain why it works?
  • Can I analyze its time and space complexity?
  • Can I recognize when this approach would not work?

If you cannot answer these questions, add the problem to your revision list.

The real goal

Do not measure progress only by the number of questions solved. Measure it by how many problems you can solve independently, how well you recognize patterns, how effectively you debug mistakes, and how clearly you explain your reasoning.

Move from “I have seen this problem before” to “I understand the pattern, and I can derive the solution myself.”