A curated archive of LeetCode solutions documenting long-term Data Structures & Algorithms practice, interview preparation, and continuous improvement in algorithmic problem-solving.
This repository contains my accepted LeetCode solutions collected throughout my Software Engineering interview preparation journey.
Rather than serving as a simple collection of solved questions, this repository documents continuous practice across a broad range of Data Structures, Algorithms, and Computer Science concepts commonly evaluated during technical interviews.
Each problem is maintained in its own directory together with the original LeetCode problem statement (README) and the corresponding implementation.
This repository was created to:
- Strengthen algorithmic thinking
- Improve coding interview performance
- Master fundamental Data Structures
- Practice common interview patterns
- Build consistent problem-solving habits
- Maintain an organized archive of accepted solutions
- Develop efficient problem-solving skills
- Learn multiple algorithmic techniques
- Improve time and space complexity optimization
- Practice clean and readable implementations
- Prepare for Software Engineer and Backend Engineer interviews
- Build long-term confidence in solving technical interview questions
- Individual directory for every solved problem
- Original LeetCode problem description preserved
- Primarily Python implementations
- Selected C++ implementations
- Covers Easy, Medium, and Hard problems
- Broad coverage of interview-focused algorithmic patterns
Each problem is organized independently.
leetcode-solutions/
├── 1-two-sum/
│ ├── README.md
│ └── two-sum.py
│
├── 102-binary-tree-level-order-traversal/
│ ├── README.md
│ └── binary-tree-level-order-traversal.py
│
├── 1036-rotting-oranges/
│ ├── README.md
│ └── rotting-oranges.py
│
└── ...
Each folder contains:
- Original problem description
- Accepted solution implementation
Problems span a wide range of interview topics, progressing from introductory array questions to advanced graph and dynamic programming challenges.
The repository demonstrates continuous practice rather than completion of a predefined roadmap.
| Category | Core Data Structures | Algorithms | Difficulty Focus | Status |
|---|---|---|---|---|
| Arrays & Hashing | Arrays, Hash Maps | Hashing, Prefix Operations | Easy → Medium | Implemented |
| Two Pointers | Arrays, Strings | Two Pointer Techniques | Easy → Medium | Implemented |
| Sliding Window | Arrays, Strings | Fixed & Variable Windows | Medium | Implemented |
| Stack | Stack | Monotonic Stack, Expression Evaluation | Medium | Implemented |
| Binary Search | Sorted Arrays | Binary Search Variants | Easy → Medium | Implemented |
| Linked Lists | Linked Lists | Pointer Manipulation | Medium | Implemented |
| Trees | Binary Trees, BST | DFS, BFS, Traversals | Medium → Hard | Implemented |
| Graphs | Graphs | BFS, DFS | Medium → Hard | Implemented |
| Heap / Priority Queue | Heap | Top-K Problems | Medium | Implemented |
| Dynamic Programming | Arrays, Strings | Memoization, Tabulation | Medium → Hard | Implemented |
| Greedy | Arrays | Greedy Selection | Medium | Implemented |
| Backtracking | Arrays, Trees | Recursive Search | Medium → Hard | Implemented |
- Arrays
- Strings
- Hash Maps
- Hash Sets
- Linked Lists
- Stacks
- Queues
- Binary Trees
- Binary Search Trees
- Graphs
- Heaps
- Matrices
While solving problems, I focus on:
- Writing clean and readable code
- Selecting efficient algorithms
- Optimizing time and space complexity
- Understanding underlying concepts rather than memorizing solutions
- Building reusable interview problem-solving patterns
The repository emphasizes algorithmic optimization through efficient solution design.
Although explicit complexity annotations are not consistently included in the source files, the implementations prioritize interview-efficient approaches whenever appropriate.
- Python
- C++
- Data Structures
- Algorithms
- Problem Solving
- Complexity Optimization
- Coding Interview Preparation
This repository includes practical applications of:
- Algorithm Design
- Complexity Analysis
- Recursion
- Binary Search
- Graph Traversal
- Tree Traversal
- Dynamic Programming
- Greedy Algorithms
- Sliding Window
- Hashing
- BFS & DFS
- Heap Operations
The repository reflects steady progression through increasingly challenging interview problems, covering both foundational and advanced Computer Science concepts.
Rather than emphasizing quantity, it showcases long-term consistency and continuous improvement in algorithmic thinking.
Python:
python solution.pyC++:
g++ solution.cpp -o solution
./solutionMany implementations are written for the LeetCode online judge environment and may require the corresponding driver code or platform definitions.
Potential enhancements include:
- Master problem index
- Topic-wise categorization
- Difficulty labels
- Time & Space complexity annotations
- Approach explanations
- Pattern-based navigation
- Progress tracker
- Links to related problems
- Category summaries
This repository is intended for educational purposes.
Niraj Vijaysinh Nale
B.Tech in Robotics & Automation
MIT World Peace University, Pune
Interested in Software Engineering, Backend Development, Artificial Intelligence, and Computer Science.
⭐ If you found this repository useful, consider giving it a star.