This repository is dedicated to my daily problem-solving journey in Java.
The goal is to improve my logical thinking, problem-solving ability, and deep understanding of core Data Structures and Algorithms — from first principles to advanced concepts.
Each Java file includes:
- 🔗 Problem Link – Direct reference to the original problem (LeetCode, GFG, etc.)
- 🧩 Problem Statement – Short description of what needs to be solved
- 💡 Approaches – Step-by-step evolution of the solution:
- Brute Force Solution – Initial, straightforward method
- Average / Improved Solution – Optimized with better logic or data structure
- Best Possible Solution – Final efficient approach with reasoning
- ⏱️ Time & Space Complexity – For each approach
- 🧠 Thought Process – Explaining how the logic evolved from basic to optimal
The problems are organized systematically for clarity and learning progression:
/platform/ topic/ level/ ProblemName.java
- /LeetCode/Arrays/Easy/TwoSum.java
- TUF+/LinkedList/RemoveNthNodeFromEndOfList/Medium/SubarraySumEqualsK.java
- 📅 Solve and push at least one problem every day
- 🧠 Strengthen logical reasoning and problem-solving depth
- ⚙️ Build a solid foundation in Data Structures and Algorithms
- 🧾 Maintain a clean, structured repository as a reflection of progress
- Arrays
- Strings
- Linked Lists
- Stacks & Queues
- Trees
- Graphs
- Recursion & Backtracking
- Dynamic Programming
- Searching & Sorting
- Greedy Algorithms
- Bit Manipulation
- LeetCode
- GeeksforGeeks
- CodeStudio
- HackerRank
- InterviewBit
This repository represents consistent daily growth.
Every problem solved is a small step toward becoming a stronger thinker, better programmer, and efficient problem solver.
The focus isn’t just on getting the right answer — it’s on understanding the logic behind it.