"The best learning strategy is the one that keeps you engaged."
This repository documents my journey in mastering Data Structures & Algorithms and System Design. It serves as a personal knowledge base and a portfolio of my problem-solving methodologies using Java and Go.
Instead of solving problems randomly, I categorize them by underlying patterns. This helps in recognizing the correct approach for new, unseen problems.
| Pattern | Key Concepts | Problem Count | Last Updated |
|---|---|---|---|
| Ad Hoc | Simulation, Implementation, Math/Logic, Constructive | TBA | Dec 2025 |
| Two Pointers | Collision (Left/Right), Fast & Slow (Floyd's), In-place Ops | TBA | Dec 2025 |
| Binary Search | Monotonicity, Search Space Reduction, Answer Range | TBA | Dec 2025 |
Note: Each *.java has their own comments to visualize my approach.
/leetcode
/adhoc
412.fizz-buzz.java
...
/binarysearch
69.sqrt.java
...
...
These solutions are my own attempts at understanding the problems. While I aim for optimal Time O(n) and Space O(1) complexities, some solutions might be brute-force first iterations.