A daily Java-based Data Structures and Algorithms (DSA) learning journey from basics to advanced, with real-world examples, detailed logic, and interview-focused solutions.
=================================================================================
Welcome to my personal repository where I’m learning and practicing Data Structures and Algorithms (DSA) using Java, step-by-step — from basic to advanced.
This is a daily journey to build strong problem-solving skills and prepare for top product-based companies.
| Day | Topics Covered | Status |
|---|---|---|
| 1 | DSA Introduction, What & Why, Real-Time Use | ✅ Completed |
| 2 | Primitive & Abstract DS, Algorithms, Basics | ✅ Completed |
| 3 | Arrays Introduction, Logic Building Starts | 🔄 Ongoing |
This roadmap follows the structure required to crack interviews at top tech/product-based companies.
- Variables, Data Types, Operators
- Control Flow (if-else, switch)
- Loops (for, while, do-while)
- Functions and Parameters
- OOP Concepts: Class, Object, Inheritance, Polymorphism, Abstraction, Encapsulation
- Constructors
this&superkeywords- Access Modifiers, Packages
- Arrays, Strings, Exception Handling
- Traversal, Insertion, Deletion
- Min/Max Element, Reverse, Rotate
- Prefix Sum, Difference Array
- Sliding Window
- Kadane’s Algorithm
- StringBuilder & StringBuffer
- Palindrome, Anagram
- Substrings, Pattern Matching
- Frequency Map
- String Compression
- Basic Problems (Factorial, Fibonacci)
- Reverse Number/String
- Subsets, Permutations
- N-Queens Problem
- Sudoku Solver
- Bubble, Selection, Insertion Sort
- Merge Sort
- Quick Sort
- Counting, Radix Sort
- Custom Sort using Comparator
- Linear Search
- Binary Search (Basic & Advanced)
- Binary Search on Answer
- Search in Rotated Array
- HashMap, HashSet
- Frequency Count, Two Sum
- Longest Consecutive Sequence
- Subarray with Given Sum K
- Stack using Array/LinkedLists
- Queue & Circular Queue
- Monotonic Stack
- Next Greater Element
- Min Stack
- Sliding Window Maximum
- Singly, Doubly Linked List
- Reverse Linked List
- Loop Detection (Floyd’s)
- Merge Sorted Lists
- LRU Cache Design
- Tree Traversals
- Height, Diameter, Balanced Tree
- Lowest Common Ancestor (LCA)
- Serialize & Deserialize Tree
- Kth Smallest Element in BST
- Min Heap, Max Heap
- Kth Largest Element
- Top K Frequent Elements
- Merge K Sorted Lists
- Trie Implementation
- Prefix Matching
- Word Search
- Auto-complete System
- Activity Selection
- Job Scheduling
- Fractional Knapsack
- Huffman Coding
- Fibonacci (Memo/Tabulation)
- 0/1 Knapsack
- Subset Sum
- LCS / LIS
- DP on Grid & Strings
- Graph Representation
- BFS, DFS
- Cycle Detection (Directed/Undirected)
- Topological Sort
- Union Find (DSU)
- Dijkstra, Kruskal, Prim
- Set/Clear/Toggle Bits
- Count Set Bits
- Power of 2
- XOR Patterns
- Bitmasking
- Spiral Traversal
- Rotate Matrix
- Search in 2D Matrix
- Number of Islands (DFS/BFS)
- Word Search
- Segment Tree, Fenwick Tree
- Suffix Array, Z Algorithm
- Mo’s Algorithm
- Bitmask DP
- Java 17
- IntelliJ IDEA / VS Code
- Git & GitHub
- LeetCode, GeeksForGeeks, HackerRank
- Build a rock-solid DSA foundation in Java
- Improve real-time problem-solving
- Get interview-ready for top tech companies
- 📧 Email: azizmunna661@gmail.com
- 💬 WhatsApp: Click to Message
⭐ Star this repo if you're also learning Java or preparing for interviews. Let's grow and learn together!