Welcome to my Data Structures & Algorithms (DSA) preparation journey!
This repository documents my structured practice of 180+ handpicked DSA questions, organized by topic and difficulty level. The questions are based on Striver's SDE Sheet, one of the most widely respected roadmaps for software engineering interview preparation.
To master fundamental and advanced DSA concepts through consistent, focused practice — and to improve both my problem-solving depth and coding fluency.
I’m tracking my learning across five revision levels to ensure spaced repetition and retention.
- Time Complexity
- Searching
- Sorting
- Arrays
- Strings
- Linked Lists
- Hashmaps & Sets
- Stacks & Queues
- Two Pointers
- Greedy
- Heaps
- Bitwise Manipulation
- Recursion & Backtracking
- Trees
- Dynamic Programming
- Graphs
- Union-Find
- Tries All problems are organized into folders under these topic names.
Each topic is revised through five progressive levels:
| Revision | Level Description | Problem Count |
|---|---|---|
| Rev 1 | Very Easy Questions | 10–15 |
| Rev 2 | Easy Questions | 8–10 |
| Rev 3 | Medium Level (Round 1) | 10–12 |
| Rev 4 | Medium Level (Round 2) | 10–12 |
| Rev 5 | Company-Specific/Advanced Focus | varies |
I'm following the 6-step problem-solving strategy by Anthony D. Mays (former Google Engineer):
- 🗣️ Repeat the problem aloud to ensure understanding and buy time.
- ❓ Ask clarifying questions to validate assumptions.
- 🔍 Work through examples to understand edge cases and behavior.
- 💡 Brainstorm multiple solutions, aiming for the most optimal.
- 💻 Implement correct code in C++/Python — no pseudocode.
- 🐞 Test thoroughly with edge cases and step-by-step walkthroughs.
Dsa-journey/
arrays/strings/linked-lists/hashmaps-and-sets/stacks-and-queues/two-pointers/greedy/heaps/bitwise/recursion-and-backtracking/trees/dp/graphs/union-find/tries/
Each folder contains solutions in.cppformat with:
- Problem name
- Problem link
- Approach explanation
- Clean, commented code
- To stay accountable and track my progress visually
- To solidify concepts through repetition and structure
- To document high-quality solutions for revision and sharing
💬 "Coding interviews aren't just about code — they're about communication, clarity, and consistency." — Inspired by Anthony D. Mays