A collection of my LeetCode problem solutions, Data Structures & Algorithms practice, and problem-solving patterns, primarily implemented in Java.
This repository serves as my personal DSA practice log and interview preparation archive, where I continuously document the problems I solve while preparing for technical interviews and software engineering placements.
This repository contains the LeetCode problems I solve regularly, along with solutions organized by:
- Difficulty — Easy, Medium, and Hard
- Data Structure / Algorithm
- Problem-Solving Patterns
- LeetCode Study Plans such as Grind 75 and Grind 100
The main goal is not just to collect solutions, but to build a strong understanding of DSA patterns, problem-solving techniques, time/space complexity, and interview-oriented thinking.
LeetCode/
│
├── Java/
│ ├── Easy/
│ └── Medium/
│
├── Patterns/
│ └── Hash Map & Hashing/
│
├── GRIND_75.md
├── GRIND_100.md
└── README.md
Contains my LeetCode solutions implemented in Java, organized primarily by problem difficulty.
Each problem is maintained in its own directory to keep the solutions easy to find and review.
Example:
Java/
└── Medium/
├── 24. Swap Nodes in Pairs/
├── 80. Remove Duplicates from Sorted Array II/
├── 128. Longest Consecutive Sequence/
├── 138. Copy List with Random Pointer/
├── 189. Rotate Array/
├── 560. Subarray Sum Equals K/
└── ...
Contains notes and explanations for important DSA problem-solving patterns.
Examples include:
- Hash Map & Hashing
- Arrays
- Strings
- Two Pointers
- Sliding Window
- Prefix Sum
- Binary Search
- Linked Lists
- Stack & Queue
- Trees
- Graphs
- Heap / Priority Queue
- Recursion & Backtracking
- Greedy
- Dynamic Programming
The purpose of this section is to understand how to recognize and apply a pattern, rather than memorizing individual solutions.
Tracks my progress through the LeetCode Grind 75 problem list.
Tracks my progress through the LeetCode Grind 100 problem list.
For each problem, my focus is on understanding the problem before writing the solution.
The general approach is:
Understand the Problem
↓
Identify the Pattern
↓
Think of a Brute Force Approach
↓
Optimize the Approach
↓
Implement in Java
↓
Analyze Time & Space Complexity
↓
Test with Edge Cases
↓
Document & Push to GitHub
This helps me develop problem-solving ability rather than simply memorizing solutions.
Java
Java is currently my primary language for solving LeetCode problems and preparing for technical interviews.
Key concepts practiced include:
- Arrays & Strings
- HashMap & HashSet
- Linked Lists
- Stacks & Queues
- Recursion
- Sorting & Searching
- Trees
- Graphs
- Heaps
- Greedy Algorithms
- Dynamic Programming
- Sliding Window
- Two Pointers
- Prefix Sum
- Binary Search
This repository is maintained as part of my continuous preparation for:
- 💻 Software Engineering Interviews
- 🎓 Campus Placements
- 🧩 Data Structures & Algorithms
- 🧠 Problem-Solving Skills
- 📈 Consistent LeetCode Practice
Rather than treating solved problems as isolated submissions, I use this repository to build a revisable collection of problems and patterns that I can return to during interview preparation.
| Category | Contents |
|---|---|
| 💻 Solutions | LeetCode solutions primarily in Java |
| 🧩 Patterns | DSA patterns and problem-solving techniques |
| 📚 Notes | Important concepts and approaches |
| 🔥 Grind 75 | Progress tracking |
| 🚀 Grind 100 | Progress tracking |
| 📈 Practice | Continuously updated problems |
This repository is actively maintained.
Whenever I solve a new LeetCode problem, the solution is added to this repository.
The repository will therefore evolve continuously as I learn and practice more:
Learn → Solve → Analyze → Document → Commit → Push → Revise
The goal of this repository is to build a strong foundation in Data Structures & Algorithms and systematic problem solving, with an emphasis on understanding patterns that can be applied to new problems.
Consistency over memorization. Patterns over individual problems. Understanding over copying solutions.
Thanmay
Computer Science Engineering Student Focused on Software Engineering, Backend Development, Data Structures & Algorithms, and Technical Interview Preparation.
⭐ If you find this repository useful, feel free to explore the solutions and DSA patterns.