Skip to content

Latest commit

 

History

433 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

LeetCode Solutions & DSA Practice

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.


📌 About This Repository

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.


🗂️ Repository Structure

LeetCode/
│
├── Java/
│   ├── Easy/
│   └── Medium/
│
├── Patterns/
│   └── Hash Map & Hashing/
│
├── GRIND_75.md
├── GRIND_100.md
└── README.md

Java/

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/
    └── ...

Patterns/

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.

GRIND_75.md

Tracks my progress through the LeetCode Grind 75 problem list.

GRIND_100.md

Tracks my progress through the LeetCode Grind 100 problem list.


🧠 Problem-Solving Approach

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.


☕ Primary Language

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

🎯 Purpose

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.


📊 What You Will Find Here

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

🔄 Repository Updates

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

📈 Long-Term Goal

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.


👨‍💻 Author

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.

About

A collection of my LeetCode problem solutions, implemented primarily in Java. This repository contains my submissions and practice solutions covering Data Structures, Algorithms, Problem Solving, and various coding patterns as I prepare for technical interviews and placements.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages