A collection of my LeetCode solutions, explanations, and iteration history across multiple programming languages.
The purpose of this repository is not simply to archive accepted answers, but to document the learning process behind each solution. Whenever possible, I include notes, observations, and explanations covering the concepts encountered while solving a problem.
- Improve problem-solving skills
- Strengthen understanding of algorithms and data structures
- Learn language-specific features and techniques
- Document lessons learned during the development process
- Build a long-term programming knowledge base
- Accepted LeetCode solutions
- Multiple solution iterations showing progression and refinement
- Explanations and write-ups submitted to LeetCode
- Notes on language features and implementation details
- Alternative approaches when applicable
As the repository grows, solutions may be written in:
- C++
- Python
- Go
- Other languages explored throughout my learning journey
easy/
├── problem-name/
│ ├── solution0.cpp
│ ├── solution1.cpp
│ ├── README.md
medium/
├── problem-name/
│ ├── solution0.cpp
│ ├── solution1.cpp
│ ├── README.md
hard/
└── ...
I intentionally preserve successful solution iterations when they demonstrate a meaningful improvement, alternative approach, or learning milestone.
This helps document:
- Initial problem-solving attempts
- Refactoring decisions
- Performance improvements
- Language concepts learned during the process
- Different ways to approach the same problem
Understanding the evolution of a solution is often more valuable than only seeing the final answer.
As the repository expands, examples may include:
- Algorithms
- Data Structures
- Time and Space Complexity
- Dynamic Programming
- Recursion
- Graph Traversal
- Trees
- Hash Maps
- Strings
- Arrays
- Linked Lists
- Queues and Stacks
- Bit Manipulation
- Pointer Techniques
- Memory Management
- Standard Library Usage
My goal is to understand why a solution works, not just how to pass the tests.
Many explanations focus on:
- Thought process
- Trade-offs
- Language-specific behavior
- Concepts discovered while solving the problem
- Practical takeaways for future problems
These solutions reflect my understanding at the time they were written.
As I continue learning, older solutions may not represent the most optimal or idiomatic approach. They are intentionally preserved to show progress and growth over time.