90-Day DSA + Algorithm Roadmap
PHASE 1: FOUNDATION (Days 1–30)
Goal: Understand what algorithms are, learn time complexity, and master basic data structures.
Week 1: Basics
- Learn Python/Java/C++ basics (whichever language you’ll use for DSA)
- Learn how to write algorithms in plain steps
- Time Complexity & Big-O notation
- Space Complexity basics
Resources:
- Big-O Cheat Sheet: https://www.bigocheatsheet.com/
- Book: Grokking Algorithms
Week 2–3: Arrays & Strings
- Searching: Linear Search, Binary Search (+ variants)
- Sorting: Bubble, Selection, Insertion, Merge, Quick Sort
Problems:
- Reverse an array
- Find min/max in array
- Two-sum problem
- Sliding window: max sum subarray
- Check if string is palindrome
- String reverse, anagram check
Resources:
- LeetCode Arrays Tag
- GeeksforGeeks Arrays
Week 4: Recursion & Hashing
- Recursion basics (factorial, Fibonacci)
- Backtracking intro (N-Queens)
- HashMap/Dictionary usage
Problems:
- Count character frequency
- Two-sum with hashmap
- Subset generation with recursion
Resources:
- VisuAlgo Recursion
PHASE 2: INTERMEDIATE DSA (Days 31–60)
Goal: Learn classic data structures + algorithms used in interviews.
Week 5: Linked Lists
- Singly linked list (insert, delete, reverse)
- Detect cycle (Floyd’s algorithm)
- Merge two sorted linked lists
Week 6: Stacks & Queues
- Stack with array/linked list
- Queue, Circular Queue
Problems:
- Balanced parentheses
- Next greater element
Week 7–8: Trees
- Binary Tree basics
- Traversals: Preorder, Inorder, Postorder (DFS)
- BFS (Level Order Traversal)
- Binary Search Tree (BST) basics
Problems:
- Height of tree
- Lowest Common Ancestor
- Diameter of binary tree
Resources:
- VisuAlgo Trees
PHASE 3: ADVANCED & COMPETITIVE (Days 61–90)
Goal: Tackle advanced topics + practice timed problem-solving.
Week 9: Graphs
- Graph representation: adjacency list/matrix
- BFS & DFS
- Dijkstra’s algorithm (shortest path)
- Topological sort
Week 10–11: Dynamic Programming
- Fibonacci (memoization & tabulation)
- Knapsack problem
- Longest Common Subsequence
Problems:
- Coin change
- House robber problem
Week 12: Mock Interview & Competitive Practice
- Timed LeetCode contests
- Review weak topics
- Focus on problem patterns (sliding window, two pointers, binary search on answer, greedy)
Daily Routine:
- 1–1.5 hrs learning concepts
- 1–2 hrs solving 3–4 problems
- Weekly review: revisit mistakes, note patterns
Competitive Platforms:
- LeetCode
- Codeforces
- AtCoder