Hi guys, I am Hieu. I created this repository as a personal place to keep track of the programming problems I have solved, mainly from LeetCode, and from CSES or Codeforces whenever I have time to explore them.
I enjoy data structures, algorithms, and competitive programming, so I wanted a public space where I could organize my solutions clearly and share them with anyone who is also preparing for coding interviews, algorithm practice, or software engineering assessments.
My hope is that this repository can be useful in some part of your own learning journey, whether you are studying the fundamentals, revisiting common problem patterns, or preparing for technical interviews.
Each problem is stored in its own folder. The folder name usually matches the problem title on the platform.
The typical structure of a problem folder is:
<problem-folder>/
editorial.md
problem_name.cpp
problem_name.py
What each file means:
editorial.md: the problem statement summary, constraints, problem link, main idea, algorithm analysis, and complexity discussion.problem_name.cpp: the C++ solution.problem_name.py: the Python solution.
Sometimes, I add some other approaches that I think it works well, so you can see my note (e.g. // The second approach) in the source file.
Example:
344. Reverse String/
editorial.md
reverse_string.cpp
reverse_string.py
I always welcome contributions to this repository. Every contribution should follow these core principles:
- Use Conventional Commits for all commit messages, such as
feat:,fix:,docs:,refactor:,test:, orchore:. - Keep each pull request focused on one problem or one clearly scoped improvement.
- Write a clear PR title and description that explain what changed, why it changed, and how it was verified.
- If you change a solution, update the corresponding
editorial.mdso the explanation stays consistent with the code. - The solution must be accepted on the original platform it was taken from, for example a LeetCode solution must get AC on LeetCode.
- Make sure the code is clean, readable, and easy to review.
- Prefer small, logical commits instead of one large mixed commit.
- Do not include unrelated changes in the same PR.
- Add notes about time complexity and space complexity whenever you introduce or modify an algorithm (you can use the template I did from any solution folder).
- Before opening a PR, make sure the solution builds or runs correctly in the target language.
To help keep contributions consistent, this repository uses lightweight contributor tooling:
huskyto enforce commit message rules through acommit-msghook.commitlintwith the Conventional Commits specification.- GitHub PR templates to keep review information consistent.
- Copilot instructions for more helpful and consistent pull request review.
If you have any questions or want to collaborate, feel free to reach out:
- Email: letronghieu09012007@gmail.com
- Github: HieuStudyingCS
- LinkedIn: Le Trong Hieu