My LeetCode solutions in Python while I work through NeetCode and prepare for interviews.
Difficulty rating · NeetCode progress · Solutions · Companies · Want to contribute?
Nothing fancy. This is where I keep the LeetCode problems I solve while working through the NeetCode All roadmap and preparing for OAs and interviews.
The repo keeps progress, complexity notes, solve dates, personal difficulty, and company-specific practice in sync so I can mostly focus on solving problems and come back later to see how I’ve improved.
For both NeetCode roadmap problems and company-specific practice, I can assign an optional personal difficulty score from 1 to 10.
It represents how difficult it felt to derive a correct and reasonably optimal solution from scratch, not how difficult the implementation looks after the solution is known.
View the rating scale
| Rating | Level | Meaning |
|---|---|---|
| 1 | Immediate | I see the solution almost instantly. The right data structure or algorithm is obvious, with almost no real reasoning required. |
| 2 | Easy | I need a little thought, but the approach appears naturally. There may be small implementation details or edge cases, but no important hidden insight. |
| 3 | Comfortable | I need to recognize a known pattern, but once I identify it, the solution follows naturally. I can usually derive it independently without getting stuck. |
| 4 | Moderate | The solution is not immediately obvious. I need to explore the problem, identify the right pattern, or make one useful observation before the approach becomes clear. |
| 5 | Significant insight | The problem depends on one important idea that I may not discover immediately. I may spend a meaningful amount of time exploring before finding the key insight. |
| 6 | Difficult | The problem requires a non-obvious insight, several coordinated steps, or tricky implementation. Deriving the full solution from scratch in an interview would be uncertain. |
| 7 | Very difficult | The optimal solution relies on a technique or invariant that I am unlikely to discover quickly. Even recognizing the general category may not be enough to reach the full algorithm. |
| 8 | Major non-obvious insight | The solution requires changing how I initially view the problem or combining several important deductions. Missing one of them can prevent me from reaching the intended approach. |
| 9 | Extremely hard to derive | I would probably not reach the intended optimal solution from scratch under interview pressure and would likely need a substantial hint. |
| 10 | No realistic path from scratch | I would have essentially no path to the intended solution without seeing a major part of the idea first. The required technique or transformation is outside my current problem-solving instincts. |
Because the rating is personal, it can change as I become more familiar with a pattern. A LeetCode Hard can receive a relatively low score if its core idea feels natural to me, while a Medium can receive a higher score if its main insight is difficult to discover.
The roadmap totals are a snapshot of NeetCode All captured on September 14, 2026 and may change as NeetCode adds or reorganizes problems.
The full solved catalog, including complexity and solve dates, is in SOLUTIONS.md.
%%{init: {"themeVariables": {"pie1": "#1f883d", "pie2": "#d29922", "pie3": "#d1242f"}}}%%
pie showData
title Solved Problems by Difficulty (29 Total)
"Easy" : 9
"Medium" : 16
"Hard" : 4
%%{init: {"themeVariables":{"pie1":"#277ace","pie2":"#ce2748","pie3":"#27ce35","pie4":"#6727ce"},"themeCSS":".pieCircle:nth-of-type(1){fill:#277ace!important}.legend:nth-of-type(2) rect{fill:#277ace!important;stroke:#277ace!important}.pieCircle:nth-of-type(2){fill:#ce2748!important}.legend:nth-of-type(3) rect{fill:#ce2748!important;stroke:#ce2748!important}.pieCircle:nth-of-type(3){fill:#27ce35!important}.legend:nth-of-type(4) rect{fill:#27ce35!important;stroke:#27ce35!important}.pieCircle:nth-of-type(4){fill:#6727ce!important}.legend:nth-of-type(5) rect{fill:#6727ce!important;stroke:#6727ce!important}"}}%%
pie showData
title Solved Problems by Topic (29 Total)
"Arrays & Hashing" : 12
"Two Pointers" : 5
"Sliding Window" : 6
"Stack" : 6
If you want to see the full topic breakdown, including solved counts and links to solutions, click below.
View detailed topic progress
| Topic | Solved | Total | Solutions |
|---|---|---|---|
| Arrays & Hashing | 12 | 175 | View |
| Two Pointers | 5 | 43 | View |
| Sliding Window | 6 | 41 | View |
| Stack | 6 | 39 | View |
| Binary Search | 0 | 43 | View |
| Linked List | 0 | 40 | View |
| Trees | 0 | 93 | View |
| Heap / Priority Queue | 0 | 33 | View |
| Backtracking | 0 | 36 | View |
| Tries | 0 | 12 | View |
| Graphs | 0 | 71 | View |
| Advanced Graphs | 0 | 30 | View |
| 1-D Dynamic Programming | 0 | 55 | View |
| 2-D Dynamic Programming | 0 | 50 | View |
| Greedy | 0 | 67 | View |
| Intervals | 0 | 21 | View |
| Math & Geometry | 0 | 63 | View |
| Bit Manipulation | 0 | 31 | View |
| All topics | 29 | 973 | Browse all |
I also keep some separate practice for specific companies in companies/.
For company-specific practice, I often use liquidslr/leetcode-company-wise-problems as the problem source and work through each company's list from highest reported frequency to lowest.
If I solve the same problem again while preparing for an OA or interview, I keep that attempt separate. I like being able to see how I approached the same problem at different times.
2 companies · 11 solved · 0 in progress · 0 planned
| Company | Folder |
|---|---|
| IBM | companies/ibm/ |
| Roblox | companies/roblox/ |
You can find more information in the company prep guide.
Everything is Python 3 unless I have a reason to use something else.
I try to keep the solutions simple and readable: basically code I’d be comfortable explaining out loud in an interview. I’m not trying to write the cleverest one-liner possible.
Found a mistake or have a cleaner solution? Feel free to open a PR. Have a look at CONTRIBUTING.md first so everything stays consistent.
If you want, you can also fill out the Pull Request template to provide more context for your changes.
The repository’s original code and documentation are licensed under the MIT License. Third-party content, platform names, and trademarks remain the property of their respective owners.
Thanks to all the people who have contributed to this project!