3-Month DSA Learning Plan in Java for Product-Based Companies
Week 1: Java Fundamentals & Basic DSA
Topics:
- Java Syntax & OOP Refresher
- Time & Space Complexity
- Arrays & Strings
- ArrayList & StringBuilder
Practice:
- Reverse a string, remove duplicates
- Rotate array, Kadane's Algorithm
- Sliding Window Basics
Platforms: LeetCode (Easy), HackerRank
Week 2-3: Recursion, Sorting & Searching
Topics:
- Recursion, Backtracking
- Binary Search (1D/2D)
- Merge Sort, Quick Sort
Practice:
- Subsets, Permutations, Sudoku Solver
- Peak Element, Merge Intervals
Week 4: Hashing & Sliding Window
Topics:
- HashMap, HashSet, TreeMap
- Frequency Maps, Sliding Window
3-Month DSA Learning Plan in Java for Product-Based Companies
Practice:
- Two Sum, Group Anagrams
- Longest Substring Without Repeat, Min Window Substring
Week 5-6: Linked Lists & Stacks/Queues
Topics:
- Singly, Doubly, Circular Linked List
- Stack, Queue, Deque, PriorityQueue
Practice:
- Reverse Linked List, Detect Cycle
- LRU Cache, Min Stack
Week 7-8: Trees & BSTs
Topics:
- Binary Trees, BSTs, Traversals (DFS/BFS)
- Height, Diameter, Balanced Trees, LCA
Practice:
- Symmetric Tree, Path Sum, Kth Smallest BST
Week 9: Heaps & Tries
Topics:
- Min/Max Heaps, PriorityQueue
- Tries (Prefix Tree)
Practice:
- Top K Frequent Elements, Median in Data Stream, Implement Trie
3-Month DSA Learning Plan in Java for Product-Based Companies
Week 10: Graphs
Topics:
- Graph Representation, BFS, DFS
- Union Find, Dijkstra's, Topo Sort
Practice:
- Number of Islands, Detect Cycle, Course Schedule
Week 11: Dynamic Programming
Topics:
- 1D & 2D DP: Fibonacci, Knapsack, Grid Paths
- DP with Strings: LCS, Edit Distance
Practice:
- House Robber, Coin Change, Longest Palindromic Substring
Week 12: Mock Interviews & System Design (Lite)
Activities:
- Timed Mock Interviews
- Top 100 LeetCode
- Basics of System Design: APIs, DBs, Load Balancing