Learning Data Structures & Algorithms in Java — completely in the open.
I'm Ranesh Rajit, a B.Tech CS student from India, learning Java and DSA from scratch — the hard way, problem by problem.
Every concept I study and every problem I solve goes into this repo so that other students on the same journey can learn alongside me for free.
Inspired by Kunal Kushwaha's DSA Bootcamp.
New to Java? Start with the complete roadmap.
| Topic | Problems Solved |
|---|---|
| Java Basics | 4 |
| Arrays & ArrayList | 53 |
| Searching & Sorting | 22 |
| Binary Search | 13 |
| Strings | 38 |
| Two Pointers | 6 |
| Sliding Window | 4 |
| Bit Manipulation | 4 |
| Greedy | 9 |
| Math & Numbers | 23 |
| Prefix Sum | 7 |
| Hashing & Misc | 4 |
| Trees | 2 |
| Recursion | 5 |
| Linked Lists | 3 |
| Graphs | 4 |
| Dynamic Programming | 6 |
Total: 207+ problems solved
- 10 Problems Solved
- 50 Problems Solved
- 100 Problems Solved
- 200 Problems Solved
- 300 Problems Solved
- 500 Problems Solved
src/
├── Basics/ # Java fundamentals — syntax, data types, I/O, operators, type casting
├── Conditionals/ # If-else, switch, nested switch, calculators, comparisons
├── Loops/ # Loop basics and practice
├── Methods/ # Functions, overloading, varargs, recursion basics, utilities
├── Arrays/ # Arrays, ArrayLists, 2D arrays, traversal, manipulation, utilities
├── Strings/ # String operations, builders, formatting, palindrome, performance
├── Searching/ # Linear, Binary, Order-Agnostic, 2D, Matrix & Recursive Searching
├── Sorting/ # Bubble, Selection, Insertion, Cycle, Merge, Quick Sort & Recursive variants
├── Recursion/ # Fundamentals, recursion-based sorting/searching, arrays, strings & recursion problems
├── Questions/
│ ├── Arrays/ # Binary Search interview problems
│ ├── BitwiseOperators/ # Bit manipulation questions
│ ├── Numbers/ # Number theory problems
│ └── Patterns/ # Pattern printing (iterative & recursive)
├── Notes/ # Reference notes
└── LeetCode/
├── Arrays/ # Array problems — 40+ solutions (Two Sum, Stock, Missing Number, Grid, etc.)
├── BinarySearch/ # Rotated Arrays, Mountain Arrays, Peak Element, Search Insert, Sqrt, etc.
├── BitManipulation/ # Reverse Bits, Hamming Weight, Power of Two, Steps to Zero
├── DynamicProgramming/ # Fibonacci, Climbing Stairs, Pascal Triangle II, DP contests
├── Enum/ # Enumeration-based problems
├── Graphs/ # Graph traversal & connectivity problems
├── Greedy/ # Cookies, Asteroids, Energy, Subsequences, Greedy contests
├── LinkedList/ # Add Two Numbers, Delete Middle, Twin Sum
├── Maths/ # Clock Angle, Nim Game, FizzBuzz, Digit Sum, GCD
├── Misc/ # Miscellaneous easy/interview problems
├── Numbers/ # Number theory, GCD, Prime, Perfect Square, Digit problems
├── PrefixSum/ # Prefix Sum and Difference Array problems
├── Recursion/ # Recursive problem solving
├── SlidingWindow/ # Longest Substring, Contains Duplicate II, Sliding Window problems
├── Strings/ # String manipulation, Anagram, Parentheses, Palindrome, Passwords, etc.
├── Tree/ # Binary Tree construction and tree problems
├── TwoPointers/ # Two-pointer techniques, Happy Number, Move Zeroes, Reverse String
└── Unsolved/ # Work-in-progress and unsolved problems
This repo is free for everyone — no paywalls, no paid courses. If it's helped you or you want to support the journey:
- Complete Recursion Module
- Complete Object-Oriented Module
- Complete Linked Lists Module
- Complete Trees & Graphs Module
- Complete Collections
- Publish Free DSA Notes
⭐ Star this repo if you're on the same journey — it keeps me going!