External memory for DSA. This repository replaces passive notes with a structured system for acquiring, retaining, retrieving, and applying algorithmic knowledge under interview pressure.
| Metric | Value |
|---|---|
| Patterns Active | 4 |
| Problems Logged | 20 |
| Sessions Completed | 2 |
| Patterns Started | 2 |
| Patterns Mastered | 1 |
| Problems Added (Session 002) | 3 |
| Mental Models | 5 |
| New Invariants | 3 |
| Blind Retrieval Tests | 1 |
| Unseen Problems Solved | 1 |
| Recognition Triggers | 5 |
| Overall Mastery | ~40% |
| Next Revision Due | See tracker/revision_tracker.md |
| Pattern | Problems | Mastery |
|---|---|---|
| Two Pointers | LC27, LC283, LC977, LC167, LC11, LC15, LC42, LC16, LC75, LC88 | 55% |
| Sliding Window | LC209, LC3, LC567 | 50% |
| Monotonic Stack | LC496, LC739, LC901, LC84 | 40% |
| Binary Search on Answer | LC875, LC1011, LC1283 | 45% |
| Trees | — | 0% |
| Graphs | — | 0% |
| Heap | — | 0% |
| Backtracking | — | 0% |
| Greedy | — | 0% |
| Dynamic Programming | — | 0% |
| # | Problem | Pattern | Difficulty | Confidence |
|---|---|---|---|---|
| LC27 | Remove Element | Two Pointers | Easy | 4/5 |
| LC283 | Move Zeroes | Two Pointers | Easy | 4/5 |
| LC977 | Squares of Sorted Array | Two Pointers | Easy | 4/5 |
| LC167 | Two Sum II | Two Pointers | Medium | 4/5 |
| LC11 | Container With Most Water | Two Pointers | Medium | 3/5 |
| LC15 | 3Sum | Two Pointers | Medium | 3/5 |
| LC42 | Trapping Rain Water | Two Pointers | Hard | 3/5 |
| LC16 | 3Sum Closest | Two Pointers | Medium | 3/5 |
| LC75 | Sort Colors | Two Pointers | Medium | 4/5 |
| LC88 | Merge Sorted Array | Two Pointers | Easy | 4/5 |
| LC209 | Minimum Size Subarray Sum | Sliding Window | Medium | 3/5 |
| LC3 | Longest Substring Without Repeating | Sliding Window | Medium | 3/5 |
| LC567 | Permutation in String | Sliding Window | Medium | 3/5 |
| LC496 | Next Greater Element I | Monotonic Stack | Easy | 3/5 |
| LC739 | Daily Temperatures | Monotonic Stack | Medium | 3/5 |
| LC901 | Online Stock Span | Monotonic Stack | Medium | 3/5 |
| LC84 | Largest Rectangle in Histogram | Monotonic Stack | Hard | 2/5 |
| LC875 | Koko Eating Bananas | Binary Search on Answer | Medium | 4/5 |
| LC1011 | Ship Packages Within D Days | Binary Search on Answer | Medium | 4/5 |
| LC1283 | Find Smallest Divisor | Binary Search on Answer | Medium | 3/5 |
Acquire → Retain → Retrieve → Apply.
Most DSA learners memorize solutions. This system builds pattern recognition — the ability to look at an unseen problem and identify which mental model applies, without hints.
Four rules govern everything:
- Pattern first. Understand the pattern before touching code.
- Dry run before coding. Trace through a small example manually.
- Never memorize code. Reconstruct it from the algorithm every time.
- Record every personal mistake. A mistake not recorded is a mistake repeated.
DSA-Mastery/
├── README.md ← This file (live dashboard)
├── DSA_Mastery_System_README.md ← System rules and philosophy
│
├── roadmap/
│ ├── learning_roadmap.md ← Ordered pattern progression
│ ├── placement_plan.md ← Interview timeline
│ └── pattern_dependency_map.md
│
├── tracker/
│ ├── progress_dashboard.md ← High-level summary
│ ├── mastery_tracker.md ← Per-pattern mastery table
│ ├── revision_tracker.md ← Scheduled revision checkpoints
│ └── interview_scores.md ← Mock interview log
│
├── patterns/ ← Deep-dive per pattern
├── problems/ ← One file per LeetCode problem
├── sessions/ ← Daily session logs
├── mental_models/ ← Thinking frameworks
├── mistake_book/ ← Recurring errors and debug patterns
├── interview_notes/ ← Mock checklists and question bank
└── templates/ ← Blank templates for new entries
- Start a new session → templates/session_template.md
- Log a new problem → templates/problem_template.md
- Check what to revise → tracker/revision_tracker.md
- Track overall progress → tracker/progress_dashboard.md
- Prepare for an interview → interview_notes/mock_interview_checklist.md
- Review a pattern → patterns/
- Review a problem → problems/
- Open tracker/revision_tracker.md — complete any due revisions first.
- Identify the pattern for today's problems.
- Re-read the relevant pattern file.
- Write the Recognition Trigger that told you which pattern to use.
- Build the Mental Model — visualize state before writing code.
- Dry run with a small example on paper.
- Write the Algorithm in plain English.
- Then write code.
- Record your Personal Mistakes immediately after.
- Create or update the problem file under
problems/. - Update the session log under
sessions/. - Update revision dates in tracker/revision_tracker.md.
- Update mastery % in tracker/mastery_tracker.md.
Every problem gets revisited at: Same Day → +1 Day → +3 Days → +7 Days → +14 Days → +30 Days
Revision means: close all notes, read only the problem statement, solve from scratch.
- Pattern first — always identify the pattern before writing a single line of code.
- Dry run before coding — trace the algorithm on a small example manually.
- Never memorize code — reconstruct from the algorithm each time.
- Record every personal mistake — in the problem file AND in mistake_book/recurring_mistakes.md.
- Every session updates this repo — session log, revision dates, mastery tracker.
- Revision is non-negotiable — due revisions before new problems.
- Interview questions — extract at least one from every problem.