DSA + Java 90-Day Roadmap
Day 1: Java Setup, Variables, I/O
Day 2: Conditionals and Loops
Day 3: Functions & Recursion Basics
Day 4: Arrays in Java
Day 5: Array Questions (Max/Min/Reverse)
Day 6: Strings and StringBuilder
Day 7: String Questions (Palindrome, Anagram)
Day 8: Time & Space Complexity
Day 9: Linear and Binary Search
Day 10: Bubble and Selection Sort
Day 11: Collections Overview (ArrayList, LinkedList)
Day 12: OOP Basics (Class, Object)
Day 13: Stack using ArrayList
Day 14: Queue using LinkedList
Day 15: Linked List Basics
Day 16: Singly Linked List Problems
Day 17: Recap and Interview Problems
Day 18: Two Pointer & Sliding Window
Day 19: Recursion Deep Dive
Day 20: Stacks and Queues (LeetCode Medium)
Day 21: Linked List Medium Problems
Day 22: Trees and Traversals
Day 23: Binary Search Tree (Insert/Delete/Search)
Day 24: Advanced Sorting (Merge/Quick Sort)
Day 25: HashMap & HashSet
Day 26: Sliding Window Advanced Problems
Day 27: Heaps (PriorityQueue in Java)
Day 28: Problem Solving + Revision
Day 29: Graphs (BFS, DFS)
Day 30: Topological Sort, Cycle Detection
Day 31: Dynamic Programming I
Day 32: Dynamic Programming II
Day 33: Greedy Algorithms
Day 34: Tries (Prefix Tree)
Day 35: Backtracking (N-Queens, Sudoku)
Day 36: Bit Manipulation Basics
Day 37: Recap + Mock Problems
Day 38: Resume Building + LinkedIn Profile
Day 39: Mock Interviews + Practice
Day 40: System Design Basics
Day 41: Revise Trees, Graphs, DP
Day 42: Final Mock + Confidence Boost