A complete self-study plan to master Data Structures & Algorithms with daily, weekly, and monthly targets.
This repository documents my 5β6 month journey to learn Data Structures & Algorithms (DSA) from scratch to an interview-ready level.
- Build strong fundamentals
- Solve 300β500 DSA problems
- Become proficient in problem-solving
- Prepare for tech interviews (FAANG / MAANG / Product Companies)
- Fastest, more control over memory
- STL makes coding efficient
- Best for competitive programming
- Most DSA resources use C++
- Clean OOP structure
- Rich in-built libraries
- Great for interview prep
- Safe memory management (GC)
Both languages can still follow this roadmap.
| Month | Focus Area |
|---|---|
| 1 | Basics + Math + Arrays + Strings |
| 2 | Linked Lists + Stacks + Queues + Trees |
| 3 | Heaps + Hashing + Tries + Advanced DS |
| 4 | Sorting + Searching + Greedy + DP Basics |
| 5 | Advanced DP + Graph Algorithms |
| 6 | Revision + Mock Interviews + Company Questions |
- Syntax, loops, arrays, functions
- Big-O notation
- Time & space complexity
- Array basics (max/min, reverse, duplicates)
Daily Targets
- β 45 min learning
- β 2 problems
- β 15 min revision
- Bit manipulation
- GCD, LCM, prime numbers
- Recursion basics
Problems
- 10 recursion
- 5 math
- 5 bit manipulation
- Two pointers
- Sliding window
- Binary search variations
- Kadaneβs algorithm
Problems
- 20β25 array questions
- Frequency counting
- Anagrams
- Palindromes
- Hashing
Problems
- 20 string problems
Topics:
- SLL, DLL
- Reverse LL
- Detect loop
- Intersection point
Problems
- β 15 LL questions
- Implementation
- Monotonic stack
- Next greater element
- Sliding window maximum
Problems
- β 15 questions
- Pre/In/Post-order
- Level-order
- Height & diameter
- Balanced tree
Problems
- β 15β20 tree problems
- Insert, delete, search
- Validate BST
- Kth smallest element
- LCA
- Min heap
- Max heap
- Priority queue
- Heap sort
- Two sum
- Subarrays with sum K
- Frequency maps
- Insert/search
- Longest prefix
- Word break (trie-based)
- Range queries
- BIT/Fenwick
- Union-Find
- Path compression
- Merge sort
- Quick sort
- Counting sort
- Applications of sorting
- Binary search on answer
- Aggressive cows
- Book allocation
- Interval scheduling
- Memoization & tabulation
- 1D DP β Fibonacci, Climbing stairs, House robber
- 2D DP β Grid problems
- LIS, LCS
- Knapsack
- DP on partitions
- Matrix chain multiplication
- BFS, DFS
- Topological sort
- Dijkstra & Bellman-Ford
- Floyd-Warshall
- Bridges & articulation points
- MST (Kruskal, Prim)
Revisit:
- Arrays
- Strings
- Recursion
- Trees
β Solve 30 previously solved problems again.
Use:
- Pramp
- LeetCode Mock
- Interviewing.io
Targets:
- Google β 50
- Amazon β 100
- Microsoft β 60
- Meta β 50
- 20β25 hard problems
- Resume preparation
- Whiteboard practice
- Time-based problem solving
| Time | Activity |
|---|---|
| 45 min | Learn a new concept |
| 1 hr | Solve 2β3 problems |
| 15 min | Revise old topics |
| Weekend | Contest + mock test |
- Love Babbar (C++) β Complete DSA
- Kunal Kushwaha (Java + DSA)
- Abdul Bari β Algorithms
- LeetCode (Primary)
- GeeksForGeeks
- CodeStudio
- HackerRank
- Cracking the Coding Interview
- Introduction to Algorithms (CLRS)
- Data Structures & Algorithms Made Easy β Karumanchi
You will:
- Understand all major data structures
- Solve 300β500 high-quality problems
- Be interview-ready for product companies
- Build strong algorithmic thinking
- Perform well in LeetCode contests & mock interviews
Stay consistent, revise weekly, and track your progress.
Your future coding interviews will become significantly easier once this plan is complete.