DSA + Java 90-Day Roadmap (With Problem Links)
Day 1: Java Setup, Variables, I/O
Day 2: Conditionals and Loops
Day 3: Functions & Recursion Basics
Day 4: Arrays in Java
LeetCode: https://leetcode.com/problems/build-array-from-permutation/
GFG: https://www.geeksforgeeks.org/arrays-in-java/
Day 5: Array Questions (Max/Min/Reverse)
LeetCode: https://leetcode.com/problems/find-the-maximum-number-of-marked-indices/
GFG: https://www.geeksforgeeks.org/write-a-program-to-reverse-an-array-or-string/
Day 6: Strings and StringBuilder
LeetCode: https://leetcode.com/problems/valid-palindrome/
GFG: https://www.geeksforgeeks.org/strings-in-java/
Day 7: String Questions (Palindrome, Anagram)
LeetCode: https://leetcode.com/problems/valid-anagram/
GFG: https://www.geeksforgeeks.org/check-whether-two-strings-are-anagram-of-each-other/
Day 8: Time & Space Complexity
GFG: https://www.geeksforgeeks.org/analysis-of-algorithms-set-1-asymptotic-analysis/
Day 9: Linear and Binary Search
LeetCode: https://leetcode.com/problems/binary-search/
GFG: https://www.geeksforgeeks.org/binary-search/
Day 10: Bubble and Selection Sort
LeetCode: https://leetcode.com/problems/sort-an-array/
GFG: https://www.geeksforgeeks.org/bubble-sort/
Day 11: Collections Overview (ArrayList, LinkedList)
GFG: https://www.geeksforgeeks.org/arraylist-in-java/
Day 12: OOP Basics (Class, Object)
GFG: https://www.geeksforgeeks.org/object-oriented-programming-oops-concept-in-java/
Day 13: Stack using ArrayList
LeetCode: https://leetcode.com/problems/implement-stack-using-arrays/
GFG: https://www.geeksforgeeks.org/stack-data-structure/
Day 14: Queue using LinkedList
LeetCode: https://leetcode.com/problems/implement-queue-using-stacks/
GFG: https://www.geeksforgeeks.org/queue-interface-java/
Day 15: Linked List Basics
GFG: https://www.geeksforgeeks.org/data-structures/linked-list/
Day 16: Singly Linked List Problems
LeetCode: https://leetcode.com/problems/reverse-linked-list/
GFG: https://www.geeksforgeeks.org/reverse-a-linked-list/
Day 17: Recap and Interview Problems
LeetCode: https://leetcode.com/explore/interview/card/top-interview-questions-easy/93/linked-list/560/
Day 18: Two Pointer & Sliding Window
LeetCode: https://leetcode.com/problems/container-with-most-water/
GFG: https://www.geeksforgeeks.org/window-sliding-technique/
Day 19: Recursion Deep Dive
LeetCode: https://leetcode.com/problems/subsets/
GFG: https://www.geeksforgeeks.org/recursion/
Day 20: Stacks and Queues (LeetCode Medium)
LeetCode: https://leetcode.com/problems/valid-parentheses/
GFG: https://www.geeksforgeeks.org/stack-set-2-infix-to-postfix/
Day 21: Linked List Medium Problems
LeetCode: https://leetcode.com/problems/merge-two-sorted-lists/
GFG: https://www.geeksforgeeks.org/merge-two-sorted-linked-lists/
Day 22: Trees and Traversals
LeetCode: https://leetcode.com/problems/binary-tree-level-order-traversal/
GFG: https://www.geeksforgeeks.org/binary-tree-set-1-introduction/
Day 23: Binary Search Tree (Insert/Delete/Search)
LeetCode: https://leetcode.com/problems/search-in-a-binary-search-tree/
GFG: https://www.geeksforgeeks.org/binary-search-tree-data-structure/
Day 24: Advanced Sorting (Merge/Quick Sort)
LeetCode: https://leetcode.com/problems/sort-an-array/
GFG: https://www.geeksforgeeks.org/merge-sort/
Day 25: HashMap & HashSet
LeetCode: https://leetcode.com/problems/two-sum/
GFG: https://www.geeksforgeeks.org/hashing-data-structure/
Day 26: Sliding Window Advanced Problems
LeetCode: https://leetcode.com/problems/longest-substring-without-repeating-characters/
GFG: https://www.geeksforgeeks.org/window-sliding-technique/
Day 27: Heaps (PriorityQueue in Java)
LeetCode: https://leetcode.com/problems/kth-largest-element-in-an-array/
GFG: https://www.geeksforgeeks.org/heap-data-structure/
Day 28: Problem Solving + Revision
LeetCode: https://leetcode.com/problemset/all/
Day 29: Graphs (BFS, DFS)
LeetCode: https://leetcode.com/problems/number-of-islands/
GFG: https://www.geeksforgeeks.org/graph-data-structure-and-algorithms/
Day 30: Topological Sort, Cycle Detection
LeetCode: https://leetcode.com/problems/course-schedule/
GFG: https://www.geeksforgeeks.org/topological-sorting/
Day 31: Dynamic Programming I
LeetCode: https://leetcode.com/problems/climbing-stairs/
GFG: https://www.geeksforgeeks.org/dynamic-programming/
Day 32: Dynamic Programming II
LeetCode: https://leetcode.com/problems/partition-equal-subset-sum/
GFG: https://www.geeksforgeeks.org/0-1-knapsack-problem-dp-10/
Day 33: Greedy Algorithms
LeetCode: https://leetcode.com/problems/jump-game/
GFG: https://www.geeksforgeeks.org/greedy-algorithms/
Day 34: Tries (Prefix Tree)
LeetCode: https://leetcode.com/problems/implement-trie-prefix-tree/
GFG: https://www.geeksforgeeks.org/trie-insert-and-search/
Day 35: Backtracking (N-Queens, Sudoku)
LeetCode: https://leetcode.com/problems/n-queens/
GFG: https://www.geeksforgeeks.org/n-queen-problem-backtracking-3/
Day 36: Bit Manipulation Basics
LeetCode: https://leetcode.com/problems/single-number/
GFG: https://www.geeksforgeeks.org/bitwise-hacks-for-competitive-programming/
Day 37: Recap + Mock Problems
LeetCode: https://leetcode.com/problemset/all/
Day 38: Resume Building + LinkedIn Profile
GFG: https://www.geeksforgeeks.org/how-to-build-an-awesome-resume-for-software-engineering-jobs/
Day 39: Mock Interviews + Practice
GFG: https://www.geeksforgeeks.org/practice-for-cracking-any-interview/
Day 40: System Design Basics
GFG: https://www.geeksforgeeks.org/system-design-tutorial/
Day 41: Revise Trees, Graphs, DP
GFG: https://leetcode.com/problemset/all/
Day 42: Final Mock + Confidence Boost
GFG: https://leetcode.com/problemset/all/