We love pull requests from everyone. By contributing to this repository, you agree to abide by the Code of Conduct.
-
First fork the repository and then clone it using:
git clone git@github.com:your-username/algorithms.git
-
After that create a branch for your changes. For example:
- add_XXX if you will add new algorithms or data structures.
- fix_XXX if you will fix a bug on a certain algorithm or data structure.
- test_XXX if you wrote a test/s.
- doc_XXX if you added to or edited documentation.
You may contribute by:
- implementing new algorithms in the repo. Be sure to keep it under right section (e.g. array, dp, etc). Make a new section for it if it doesn't fall under any section. Make sure that your implementation works.
- optimizing or improving the existing algorithms.
- adding a different solution for the problem.
- finding and fixing bugs.
- adding examples to explain the algorithms better.
- adding test cases.
- improving documentation.
Push to your fork and submit a pull request.
We will review and may suggest some changes or improvements or alternatives. Some things that will increase the chance that your pull request is accepted:
- All algorithms should be written in Python 3. (There are a few algorithms still in Python 2 syntax. You can start by converting those to Python 3.)
- Write clean and understandable code.
- Properly comment the code and briefly explain what the algorithm is doing in the docstrings.
- You may also explain the output using a minimal example.
- Try to also include a couple of test cases for the algorithm.
- Write a good commit message.
Submit a new issue if there is an algorithm to add, or if a bug was found in an existing algorithm. Before submitting a new issue please review the existing issues to avoid creating duplicates. Also, consider resolving current issues or contributing to the discussion on an issue.
You can ask for any help or clarifications from the collaborators.
Keon Kim