A structured, sequential study guide covering the Blind 75 problems and the core DSA topics required for software engineering interviews. Written in Java.
git clone https://github.com/Dancan254/DataStructuresAndAlgorithms.git
cd DataStructuresAndAlgorithmsOpen the project in IntelliJ IDEA or any Java IDE. The source root is src/.
src/dsa/
├── <topic>/
│ ├── CONCEPTS.md — Theory, patterns, annotated code templates
│ ├── EXERCISES.md — Problem list (Blind 75 marked) with pattern hints
│ ├── *.java — Fully solved reference implementations
│ └── practice/
│ └── *.java — Your workspace: empty method stubs + test cases
- Read
CONCEPTS.mdfor the topic. Understand every pattern before touching code. - Study the solved
.javafiles in the topic root to see the patterns applied. - Open a file inside
practice/— each file has the full problem description, constraints, a hint, and amain()method with test cases already written. - Implement the method in your IDE. Run
main()directly to check your output. - Review
EXERCISES.mdfor additional problems to attempt on LeetCode.
Work through the topics in this order. Each one builds on the previous.
| # | Topic | Folder | Core Patterns |
|---|---|---|---|
| 01 | Arrays and Hashing | arrays_hashing/ |
Frequency maps, complement lookup, prefix sums, set membership |
| 02 | Two Pointers | two_pointers/ |
Opposite-end, three-pointer, fast/slow |
| 03 | Sliding Window | sliding_window/ |
Fixed window, variable window, minimum covering window |
| 04 | Stack | stack/ |
Bracket matching, monotonic stack |
| 05 | Binary Search | binary_search/ |
Classic, rotated arrays, search on answer space |
| 06 | Linked List | linked_list/ |
Reversal, merge, fast/slow pointers |
| 07 | Trees | trees/ |
DFS pre/in/post-order, BFS, BST properties, Trie |
| 08 | Heap / Priority Queue | heap/ |
Top-K, two-heap median |
| 09 | Backtracking | backtracking/ |
Subsets, permutations, grid search |
| 10 | Graphs | graphs/ |
BFS, DFS, topological sort, Union-Find |
| 11 | Dynamic Programming | dynamic_programming/ |
1D DP, knapsack, 2D DP, subsequences |
| 12 | Intervals | intervals/ |
Sort by start/end, greedy scheduling |
| 13 | Bit Manipulation | bit_manipulation/ |
XOR tricks, counting bits, carry arithmetic |
See STUDY_GUIDE.md for the full Blind 75 problem map.
- Blind 75 LeetCode Problems
- NeetCode Roadmap
- GeeksforGeeks — DSA
- MIT 6.006 Introduction to Algorithms
All the best!