Personal knowledge base for coding interview preparation.
This repository is not a collection of solved problems.
Instead, it is a structured playbook of patterns, templates, and mental models used to solve problems efficiently during technical interviews.
Build a compact, reusable system of thinking for solving coding interview questions.
- Recognize patterns quickly
- Recall implementations without friction
- Reduce cognitive load during interviews
Coding interviews are not about memorizing problems.
They are about:
- Identifying the underlying pattern
- Applying a known template
- Adapting it to the specific problem
This repository exists to make that process fast and reliable.
Each file corresponds to a core pattern:
- sliding_window.ipynb
- monotonic_stack.ipynb
- bfs_dfs.ipynb
- binary_search.ipynb
- two_pointers.ipynb
Each notebook contains:
- When to use the pattern
- Core idea
- Invariants
- Minimal template implementation
- Variations
- Common pitfalls
- Mental model (1-line summary)
For each problem you solve:
- Identify the pattern
- Study or revisit the corresponding notebook
- Update notes if you learn something new
- Focus on generalization, not the specific problem
- ❌ A dump of LeetCode solutions
- ❌ A collection of random notes
- ❌ A theory-heavy algorithms textbook
- ✅ A personal pattern library
- ✅ A set of implementation templates
- ✅ A tool for long-term retention
From problem-solving → to pattern recognition
The goal is to move from:
- “I remember this problem”
to:
- “I recognize the pattern and know how to implement it”
Be able to:
- Identify the correct approach within seconds
- Write clean, correct code quickly
- Handle variations without starting from scratch