Complete notes for mastering Data Structures & Algorithms in Java — types, differences, complexities, Java code, and practice guidance.
- Java Essentials for DSA
- Complexity Analysis (Big-O)
- Arrays
- Strings
- Linked List
- Stack
- Queue
- Trees
- Heap / Priority Queue
- Graphs
- Sorting Algorithms
- Searching Algorithms
- Hashing
- Recursion & Backtracking
- Dynamic Programming
- Greedy Algorithms
- Master Cheat Sheet
- Read theory + differences table for each topic.
- Run/modify the Java snippets yourself (don't just read).
- After each topic, solve 10-15 problems from the linked sheets below.
- Revise the Cheat Sheet (file 17) weekly.
Structured sheets / tutorials
- GeeksforGeeks DSA Tutorial — topic-wise theory + practice.
- Striver's A2Z DSA Sheet (takeUforward) — step-by-step FAANG-oriented roadmap, free, Java/C++/Python solutions.
- NeetCode 150 — curated pattern-based problem list with videos.
Books, ranked by purpose:
- Grokking Algorithms (Aditya Bhargava) — best first book, highly visual, beginner friendly.
- Introduction to Algorithms (CLRS, 4th ed., Cormen/Leiserson/Rivest/Stein) — the definitive deep reference; use to look things up, not to read cover-to-cover.
- Data Structures and Algorithms in Java (Goodrich, Tamassia, Goldwasser) — Java-specific implementations, great alongside these notes.
- Cracking the Coding Interview (Gayle Laakmann McDowell) — interview-pattern practice, Java-based solutions.
- Elements of Programming Interviews (EPI, Java version) — harder problems for advanced prep.
- Algorithm Design Manual (Skiena) — after CLRS, for designing novel algorithms.
Practice platforms: LeetCode, Codeforces, GeeksforGeeks Practice, HackerRank.
Note: buy/borrow books via legitimate retailers/libraries; the notes below are original explanations, not reproductions of any book text.