Active interview-preparation notes, implementations, and solved problems in Python.
I originally created this repository as a broad DSA reference. I am now using it as a structured interview-prep workspace: focusing on recurring problem-solving patterns, the reasoning behind them, complexity analysis, and clean implementations.
Start here:
Current focus:
- Arrays — complete
- Hash maps & sets — complete
- Two pointers — in progress
- Sliding window — next
The newer notes are organised around interview patterns rather than around isolated LeetCode problems.
interview-prep/
README.md
patterns/
two-pointers.md
Practice Concepts/
Data Structures/
Trees/
Graphs/
Greedy Algorithms/
Dynamic Programming/
...
Leetcode Problems/
Easy/
Medium/
Hard/
archive/
legacy-notes.md
A few useful examples already in the repository:
- Two Sum — hash map
- Two Sum II — two pointers
- Valid Palindrome
- LRU Cache
- Minimum Remove to Make Valid Parentheses
For interview preparation I care about being able to explain:
- what signal in the problem suggests a pattern;
- what invariant/state the algorithm maintains;
- why each decision is safe;
- the time and space complexity;
- the edge cases and common failure modes.
The aim is understanding and recall under interview conditions, not simply accumulating solved problems.
The repository's original long-form reference notes are preserved here: