Month 1: Foundation & Recursion
Topics:
- Recursion basics (factorial, Fibonacci, sum of array, reverse string, power of number)
- Time & Space Complexity basics (O(1), O(n), O(n²), O(log n))
- Iterative vs Recursive solutions comparison
Practice:
- Solve 10–12 recursion problems
- Analyze TC & SC for each
- Dry run + recursion stack understanding
Month 2: Arrays & Linked Lists
Topics:
- Arrays (search, sort, sliding window, two pointers)
- Linked List: Single, Doubly, Circular
- Operations: Insert, Delete, Reverse, Merge, Detect Loop
Practice:
- 5 problems per topic (Array + Linked List)
- TC/SC analysis for each solution
- Pattern recognition (sliding window, fast/slow pointers)
Month 3: Stack, Queue, Hash Table, Trees
Topics:
- Stack (LIFO, parenthesis check, min stack)
- Queue (FIFO, circular queue, deque)
- Hash Table (frequency map, two sum)
- Trees: Binary Tree, Binary Search Tree
- Tree traversal: Inorder, Preorder, Postorder, Level Order
Practice:
- 5 problems per topic
- TC/SC analysis + recursion where applicable
- Patterns: recursion in trees, hash map tricks
Month 4: Advanced DS & Algorithms
Topics:
- Heap (min/max heap, priority queue)
- Suffix Tree, Trie, Disjoint Set
- Graphs: BFS, DFS, shortest path
- Sorting: Merge, Quick, Heap
- Greedy, Backtracking, Dynamic Programming basics
Practice:
- 5 problems per topic
- Analyze TC/SC + identify patterns (divide & conquer, memoization, greedy choice)
- Start with easy → medium → hard problems
Daily/Weekly Practice Suggestion
- Daily: 1–2 problems + TC/SC analysis
- Weekly: 1 topic summary + patterns + mini project if possible
- Monthly: 2–3 mock problem sets (Leetcode/Hackerrank)
Extra Tips
- Use JS throughout (Node.js environment)
- Dry run solutions on paper before coding
- Note patterns + tricks in Notion for future reference
- Start integrating DSA in small projects (e.g., book management features)
Top comments (0)