Skip to content

Repository files navigation

Algorithm Atlas

Introduction

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.

How to Use

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

Contributing

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:, or chore:.
  • 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.md so 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:

  • husky to enforce commit message rules through a commit-msg hook.
  • commitlint with the Conventional Commits specification.
  • GitHub PR templates to keep review information consistent.
  • Copilot instructions for more helpful and consistent pull request review.

Contact

If you have any questions or want to collaborate, feel free to reach out:

About

The repository where you can get solution for some problems on Leetcode, Codeforces, and CSES

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages