Welcome to DSA Mastery, a single-stop, self-contained repository for mastering Data Structures and Algorithms — from the absolute basics to the most advanced problems asked in top interviews.
This repo is structured topic-wise (each topic has its own detailed .md file) covering concepts, must-solve problems, patterns, study plans, and progress checklists.
| # | Topic | File | Description |
|---|---|---|---|
| 1 | 🧩 Arrays | arrays.md |
Core problems: largest element, Kadane’s algorithm, subarrays, permutations, prefix-sum logic |
| 2 | 🔗 Linked List | linked_list.md |
Singly/Doubly Linked Lists, reversal, loop detection, merge, clone, flatten |
| 3 | 🧱 Stack & Queue | stack_queues.md |
Implementations, monotonic stack, next greater/smaller, LRU/LFU cache |
| 4 | ⚡ Bit Manipulation | bit-manipulation.md |
Power of two, set bits, XOR tricks, binary exponentiation, sieve |
| 5 | 🔁 Two Pointer & Sliding Window | two_pointer_sliding_window.md |
Substring, subarray, k distinct elements, window optimizations |
| 6 | 🌳 Trees | trees.md |
Traversals, recursion, BST, binary tree logic, properties |
| 7 | 🔤 Tries & Strings | tries_strings.md |
Trie, prefix search, KMP, Z-function, palindrome, string parsing |
| 8 | 📈 Dynamic Programming (DP) | dp.md |
Recursion → Memoization → Tabulation → Space Optimization |
| 9 | 🌐 Graphs | graph.md |
BFS, DFS, Topological Sort, Shortest Path, MST, DSU, Tarjan/Kosaraju |
Each .md file is designed to act as a self-contained roadmap for its topic:
- 🧠 Concept explanations
- 🧩 Problem list (from basic → advanced)
- 🗂️ Categorized patterns
- ⚙️ Time/Space insights
- ✅ Progress tracker checkboxes
- 🗓️ Study plan (3–7 weeks)
Start anywhere — or follow this recommended learning sequence 👇
| Phase | Topics | Focus Area |
|---|---|---|
| Phase 1 | Arrays, Linked List | Foundation of DSA & pointer logic |
| Phase 2 | Stack, Queue, Sliding Window | Monotonic logic, windows, greedy patterns |
| Phase 3 | Bit Manipulation, Trees, Tries/Strings | Math, recursion, structure manipulation |
| Phase 4 | Dynamic Programming | Optimization, recursion → iteration transition |
| Phase 5 | Graphs | Connectivity, paths, MST, topological sort, DSU |
🧩 Each topic file already includes a week-by-week breakdown.
DSA-Mastery/
│
├── arrays.md
├── linked_list.md
├── stack_queues.md
├── bit-manipulation.md
├── two_pointer_sliding_window.md
├── trees.md
├── tries_strings.md
├── dp.md
├── graph.md
└── README.md ← (this file)
💡 Each
.mdfile is a complete learning notebook for that topic.
| Category | Key Concepts |
|---|---|
| Arrays | Prefix/suffix sums, Kadane’s, Subarray sums, permutations |
| Linked List | Pointers, reversal, loop detection, merge, arithmetic ops |
| Stack & Queue | Infix-postfix, monotonic stack, LRU/LFU cache |
| Sliding Window | Subarray optimization, distinct counts, substring analysis |
| Bit Manipulation | Power of 2, XOR, set bits, sieve, binary exponentiation |
| Trees & Tries | Recursion, traversals, prefix search, XOR tries |
| Strings | KMP, Z-function, palindrome, hashing, parsing |
| Dynamic Programming | Grids, subsequences, knapsack, stocks, LIS, MCM |
| Graphs | BFS, DFS, Topo Sort, Shortest Path, DSU, Tarjan |
- Open a topic file like
arrays.mdordp.md. - Read through the concept summary and problem list.
- Implement problems in your preferred language (C++ recommended).
- Tick checkboxes ✅ in the tracker as you solve.
- Revisit topics for revision or deeper understanding.
📌 Each file is standalone — you can study any topic independently.
By the end of this journey, you’ll:
✅ Understand every core DSA pattern
✅ Be confident in problem classification & pattern reuse
✅ Solve 250+ standard problems across all topics
✅ Be interview-ready for FAANG/Top Tech companies
✅ Have a clean, public portfolio-ready DSA repo
| Week | Focus | Approx. Problems |
|---|---|---|
| 1–2 | Arrays + Linked List | 30–40 |
| 3–4 | Stack + Queue + Sliding Window | 30–35 |
| 5–6 | Bit + Trees + Strings | 25–30 |
| 7–9 | DP + Graphs | 50–60 |
🎯 Total: ~200–250 problems → Complete DSA coverage.
- Use C++ STL effectively (
vector,map,stack,queue,priority_queue). - Focus on approach clarity, not just syntax.
- Keep comments and dry runs inside your
.cppsolutions. - Re-implement problems after 3–4 days to reinforce retention.
- For every algorithm, know its time/space complexity and intuition.
“DSA mastery isn’t about memorizing 1000 problems.
It’s about learning 100 problems that teach 1000 patterns.”
This repo is your living syllabus for mastering DSA from scratch —
systematic, pattern-driven, and interview-focused.
Built for learners who want clarity over chaos — no scattered notes, no endless lists.
Just structured learning, solid patterns, and pure problem-solving.
Happy Coding 💻
#DSA #Algorithms #DataStructures #InterviewPrep #CodingRoadmap