A comprehensive collection of my annotated solutions to LeetCode problems, demonstrating problem-solving skills, algorithmic thinking, and coding practices in multiple languages.
This repository contains well-documented solutions to algorithmic problems from LeetCode. Each solution includes:
- Detailed approach explanation
- Time and space complexity analysis
- Multiple implementation strategies where applicable
- Clean, readable code with appropriate comments
- 1. Two Sum - Python | C#
- 3. Longest Substring Without Repeating Characters - Python | C#
- 15. 3Sum - Python | C#
- 19. Remove Nth Node From End of List - Python | C#
- 141. Linked List Cycle - Python | C#
- 206. Reverse Linked List - Python | C#
- 98. Validate Binary Search Tree - Python
- 207. Course Schedule - Python
- 226. Invert Binary Tree - Python | C#
- 20. Valid Parentheses - Python | C#
- 155. Min Stack - Python | C#
- 232. Implement Queue using Stacks - Python | C#
When solving LeetCode problems, I follow these principles:
- Understand the problem thoroughly before writing any code
- Consider multiple approaches and analyze their tradeoffs
- Optimize for readability and maintainability while meeting performance requirements
- Document complexity analysis to demonstrate understanding of algorithmic efficiency
Solutions are organized by language:
/python/- Python solutions utilizing idiomatic Python features and libraries/c#/- C# solutions demonstrating object-oriented design principles
- Add unit tests for each solution
- Include more detailed walkthroughs for complex problems
- Expand solutions to cover more programming languages
If you find these solutions helpful or have suggestions for improvements, feel free to:
- Create an issue or pull request
- Check out my portfolio / what I've been up to here
- Connect with me on LinkedIn
- Look at what else I've been coding on GitHub
This repository is available under the MIT License. See the LICENSE file for more information.