Commit Graph

53 Commits

Author SHA1 Message Date
duongoku
62dcbea943
Add power sum problem ()
* Add powersum problem

* Add doctest

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add more doctests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add more doctests

* Improve paramater name

* Fix line too long

* Remove global variables

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2023-06-26 09:39:18 +02:00
Christian Clauss
4b79d771cd
Add more ruff rules ()
* Add more ruff rules

* Add more ruff rules

* pre-commit: Update ruff v0.0.269 -> v0.0.270

* Apply suggestions from code review

* Fix doctest

* Fix doctest (ignore whitespace)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-05-26 09:34:17 +02:00
Maxim Smolskiy
f9cc25221c
Reduce the complexity of backtracking/word_search.py ()
* Lower the --max-complexity threshold in the file .flake8
2023-03-10 15:18:05 +05:30
Christian Clauss
64543faa98
Make some ruff fixes ()
* Make some ruff fixes

* Undo manual fix

* Undo manual fix

* Updates from ruff=0.0.251
2023-03-01 17:23:33 +01:00
Christian Clauss
c909da9b08
pre-commit: Upgrade psf/black for stable style 2023 ()
* pre-commit: Upgrade psf/black for stable style 2023

Updating https://github.com/psf/black ... updating 22.12.0 -> 23.1.0 for their `2023 stable style`.
* https://github.com/psf/black/blob/main/CHANGES.md#2310

> This is the first [psf/black] release of 2023, and following our stability policy, it comes with a number of improvements to our stable style…

Also, add https://github.com/tox-dev/pyproject-fmt and https://github.com/abravalheri/validate-pyproject to pre-commit.

I only modified `.pre-commit-config.yaml` and all other files were modified by pre-commit.ci and psf/black.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-02-01 18:44:54 +05:30
Alexander Pantyukhin
6a86fe4867
Add backtrack word search in matrix ()
* add backtracking word search

* updating DIRECTORY.md

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* review notes fixes

* additional fixes

* add tests

* small cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* small cleanup 2

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update backtracking/word_search.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/word_search.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/word_search.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/word_search.py

Co-authored-by: Christian Clauss <cclauss@me.com>

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
2022-11-29 19:28:47 +01:00
Mark Mayo
f32d611689
clean of unnecessary checks, imports, calls () 2022-11-21 00:00:27 +13:00
Caeden Perelli-Harris
61eedc16c3
Remove useless code in doctests ()
* refactor: Fix matrix display deprecation

* refactor: Remove useless `print` and `pass` statements

* revert: Replace broken doctests

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* revert: Fix failing doctests

* chore: Satisfy pre-commit

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-27 22:52:00 +02:00
Caeden Perelli-Harris
9bba42eca8
refactor: Indent ... for visual purposes () 2022-10-27 19:42:30 +02:00
Nadirhan Şahin
b90ec30398
Create combination_sum.py ()
* Create combination_sum.py

* Update DIRECTORY.md

* Adds doctests

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update combination_sum.py

* Update combination_sum.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2022-10-18 21:55:43 +02:00
Manish Kumar
5bfcab1aa4
Create minmax.py ()
* Create minmax.py

* Update minmax.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-18 21:22:38 +02:00
Caeden
4d0c830d2c
Add flake8 pluin flake8 bugbear to pre-commit ()
* ci(pre-commit): Add ``flake8-builtins`` additional dependency to ``pre-commit`` ()

* refactor: Fix ``flake8-builtins`` ()

* fix(lru_cache): Fix naming conventions in docstrings ()

* ci(pre-commit): Order additional dependencies alphabetically ()

* fix(lfu_cache): Correct function name in docstring ()

* Update strings/snake_case_to_camel_pascal_case.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update data_structures/stacks/next_greater_element.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update digital_image_processing/index_calculation.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update graphs/prim.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update hashes/djb2.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* refactor: Rename `_builtin` to `builtin_` ( )

* fix: Rename all instances ()

* refactor: Update variable names ()

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* ci: Create ``tox.ini`` and ignore ``A003`` ()

* revert: Remove function name changes ()

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Rename tox.ini to .flake8

* Update data_structures/heap/heap.py

Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>

* refactor: Rename `next_` to `next_item` ()

* ci(pre-commit): Add `flake8` plugin `flake8-bugbear` ()

* refactor: Follow `flake8-bugbear` plugin ()

* fix: Correct `knapsack` code ()

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2022-10-13 18:03:06 +02:00
Caeden
d5a9f649b8
Add flake8-builtins to pre-commit and fix errors ()
Ignore `A003`

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com>
2022-10-13 19:53:59 +05:30
Caeden
07e991d553
Add pep8-naming to pre-commit hooks and fixes incorrect naming conventions ()
* ci(pre-commit): Add pep8-naming to `pre-commit` hooks ()

* refactor: Fix naming conventions ()

* Update arithmetic_analysis/lu_decomposition.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* refactor(lu_decomposition): Replace `NDArray` with `ArrayLike` ()

* chore: Fix naming conventions in doctests ()

* fix: Temporarily disable project euler problem 104 ()

* chore: Fix naming conventions in doctests ()

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-10-13 00:54:20 +02:00
Leoriem-code
47dd31f4a1
Add README files 1/7 ()
* Added 5 README files

* corrected arithmetic_analysis README

* Update audio_filters/README.md

Co-authored-by: John Law <johnlaw.po@gmail.com>

* Update backtracking/README.md

Co-authored-by: John Law <johnlaw.po@gmail.com>

* Update bit_manipulation/README.md

Co-authored-by: John Law <johnlaw.po@gmail.com>

Co-authored-by: John Law <johnlaw.po@gmail.com>
2021-11-04 18:49:36 +08:00
DukicDev
c873fa0b1b
Correct grammar of comment in backtracking/hamiltonian_cycle.py () 2021-10-02 15:51:53 +02:00
DukicDev
31b34af9fa
Correct grammar in backtracking/n_queens_math.py () 2021-10-02 15:37:28 +02:00
DukicDev
6341f351aa
Fix comments in backtracking/coloring.py () 2021-10-01 23:48:47 +02:00
Christian Clauss
cecf43d648
Pyupgrade to Python 3.9 ()
* Pyupgrade to Python 3.9

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2021-09-07 13:37:03 +02:00
GDWR
c824b90ead
Remove redundent function in Backtracking Sudoku ()
* Remove redundent function

After reviewing this code, I've noticed that the `is_completed` function is a redundant operation.
Increasing the number of loops required for each step of the sudoku solver. 
This should remove n² operations where n is the width of the grid.

* Update sudoku.py

Remove additional newline
2021-06-10 22:14:41 +05:30
Dhruv Manilawala
f3ba9b6c50
[mypy] Add/fix type annotations for backtracking algorithms ()
* Fix mypy errors for backtracking algorithms

* Fix CI failure
2020-12-24 18:16:21 +05:30
John Law
25164bb638
Fix mypy in ()
* Fix mypy in 

* fix pre-commit
2020-11-29 23:00:31 +05:30
Jenia Dysin
e07766230d
Add static typing to backtracking algorithms ()
* Added static typing to backtracking algorithms

* Ran psf/black to fix some minor issues.

* updating DIRECTORY.md

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-11-30 00:19:50 +08:00
Tapajyoti Bose
3324bbb94b
Added sudoku type hints [Hacktober Fest] ()
* chore(sudoku): added type hints [HACKTOBER-FEST]

* updating DIRECTORY.md

* chore: added matrix type alias

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-10 12:32:51 +05:30
Tapajyoti Bose
8bd4ca67be
Added all sub sequence type hints [Hacktober Fest] ()
* updating DIRECTORY.md

* chore(all-subsequence): added type hints [HACKTOBER-FEST]

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-10-10 11:49:36 +05:30
Dhruv
48357cea5b
Add __init__.py files in all the directories () 2020-09-28 19:42:36 +02:00
Du Yuanchao
b81fcef66b
Fixed linked list bug ()
* * fixed __getitem__() function
* add test

* * updated doctests
* updated __setitem__() func

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-25 18:08:57 +02:00
Abdujabbar Mirkhalikov
53c2a24587
added type hints and doctests for minimax algorithm ()
* added type hints and doctests for minimax algorithm

* Update backtracking/minimax.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* last fix

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-25 15:16:05 +02:00
Christian Clauss
9200a2e543
from __future__ import annotations ()
* from __future__ import annotations

* fixup! from __future__ import annotations

* fixup! from __future__ import annotations

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-23 13:30:13 +02:00
Hasenn
10aa214fcb
Docstrings and formatting improvements ()
* Fix spelling in docstrings

* Improve comments and formatting

* Update print statement to reflect doctest change

* improve phrasing and apply black

* Update rat_in_maze.py

    This method is recursive starting from (i, j) and going in one of four directions:
    up, down, left, right.
    If a path is found to destination it returns True otherwise it returns False.

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-09-14 14:40:27 +02:00
Du Yuanchao
4d0a8f2355
Optimized recursive_bubble_sort ()
* optimized recursive_bubble_sort

* Fixed doctest error due whitespace

* reduce loop times for optimization

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-09-10 10:31:26 +02:00
David Aaron Banda Gutierrez
05c14c6be8
N queens math ()
* add new file for another solution to the n queens problem

* Add the code for the algorithm, add comments and add at the top a general explanation

* Update backtracking/n_queens_math.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/n_queens_math.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/n_queens_math.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* Update backtracking/n_queens_math.py

Co-authored-by: Christian Clauss <cclauss@me.com>

* No newline at the end of the file

* Type hints

* whitespaces fixed

* Fixed whitespaces

* Add type hints

* CodeSpell fixed

* update

* All changes made except changing the board variable to local

* Add doctest

* Update

* Update

* Update

* Update n_queens_math.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-07-10 10:30:48 +02:00
Christian Clauss
fdc5bee7af
Euler problem 551 sol 1: Reduce McCabe code complexity ()
* Euler problem 551 sol 1: Reduce McCabe code complexity

As discussed in 

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-22 14:16:12 +02:00
Tapajyoti Bose
b9e7c891e2
Added (Open) Knight Tour Algorithm ()
* Added (Open) Knight Tour Algorithm

* Implemented Suggestions
2020-06-18 11:30:24 +02:00
Christian Clauss
9316e7c014
Set the Python file maximum line length to 88 characters ()
* flake8 --max-line-length=88

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-16 10:09:19 +02:00
Christian Clauss
0b028aa32a
Fix line break after binary operator ()
* Fix line break after binary operator

* fixup! Format Python code with psf/black push

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-06-15 15:47:02 +02:00
beqakd
23dae9ceab
implement rat in maze algorithm. ()
* implement rat in maze algorithm.

* style changes

* fix trailing whitespace

* add test, fix style

* fix style

* method change

* minor changes

* style changes

* return solved

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-06-15 15:03:30 +02:00
Christian Clauss
1f8a21d727
Tighten up psf/black and flake8 ()
* Tighten up psf/black and flake8

* Fix some tests

* Fix some E741

* Fix some E741

* updating DIRECTORY.md

Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com>
2020-05-22 08:10:11 +02:00
Saba Pochkhua
a859934105
Hamiltonian Cycle ()
* add skeleton code

* add doctests

* add tests for util function + implement wrapper

* full implementation

* add ability to add starting verex for algorithm

* add static type checking

* add doc tests to validation method

* bug fix: doctests expected failing

* Update hamiltonian_cycle.py

* Update hamiltonian_cycle.py

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-05-02 21:13:56 +02:00
Saba Pochkhua
b01e5b78a3
Graph coloring ()
* add skeleton code

* add doctests

* add mainc function pseudo code and tests (ToDo: write Implementation)

* typo fixes

* implement algorithm

* add type checking

* add wikipedia link

* typo fix

* update range syntax

Co-authored-by: Christian Clauss <cclauss@me.com>

* change indexed iteration checking to any()

Co-authored-by: Christian Clauss <cclauss@me.com>

* fix: swap import and documentation sections

* fix: change return none to return empty list

* remove unnecessary import (Union)

* change: remove returning boolean indicating problem was solved or not

* remove unnecessary import (Tuple)

Co-authored-by: Christian Clauss <cclauss@me.com>
2020-04-30 23:23:52 +02:00
matkosoric
7f04e5cd34
contribution guidelines checks ()
* spelling corrections

* review

* improved documentation, removed redundant variables, added testing

* added type hint

* camel case to snake case

* spelling fix

* review

* python --> Python # it is a brand name, not a snake

* explicit cast to int

* spaces in int list

* "!= None" to "is not None"

* Update comb_sort.py

* various spelling corrections in documentation & several variables naming conventions fix

* + char in file name

* import dependency - bug fix

Co-authored-by: John Law <johnlaw.po@gmail.com>
2020-03-04 13:40:28 +01:00
Christian Clauss
bfcb95b297
Create codespell.yml ()
* fixup! Format Python code with psf/black push

* Create codespell.yml

* fixup! Format Python code with psf/black push
2020-01-18 13:24:33 +01:00
Christian Clauss
28419cf839 pyupgrade --py37-plus **/*.py ()
* pyupgrade --py37-plus **/*.py

* fixup! Format Python code with psf/black push
2020-01-03 22:25:36 +08:00
Christian Clauss
26b0803319
Simplify sudoku.is_completed() using builtin all() ()
* Simplify sudoku.is_completed() using builtin all()

Simplify __sudoku.is_completed()__ using Python builtin function [__all()__](https://docs.python.org/3/library/functions.html#all).

* fixup! Format Python code with psf/black push

* Update sudoku.py

* fixup! Format Python code with psf/black push

* Old style exception -> new style for Python 3

* updating DIRECTORY.md

* Update convex_hull.py

* fixup! Format Python code with psf/black push

* e.args[0] = "msg"

* ValueError: could not convert string to float: 'pi'

* Update convex_hull.py

* fixup! Format Python code with psf/black push
2019-12-08 22:42:17 +01:00
Christian Clauss
b838f1042c Fix indentation contains tabs (flake8 E101,W191) () 2019-11-15 23:05:00 -08:00
William Zhang
9eac17a408 psf/black code formatting () 2019-10-05 10:14:13 +05:00
adith bharadwaj
f3c0b132bc Added sudoku solving program in backtracking algorithms ()
* Added sudoku solver in backtracking

* Added sudoku solver program

* Added sudoku solver

* Added sudoku solver

* Format with black, add doctests, cleanup main
2019-08-13 15:51:06 +02:00
obelisk0114
628794d89d Add combinations ()
* Update Bucket Sort time complexity analysis

* Add combinations

* Adding doctest

* Fix doctest problem
2019-07-14 07:45:54 +02:00
Aditi Agarwal
4ff2a9dd4e minimax ()
* minimax.py

minimax algorithm is used for game like tic tac toe. It traces the path and selects the optimal move.

* minimax.py

Minimax is used in decision making and game theory to find the optimal move for a player, when your opponent also plays optimally. It is widely used in games like Tic-Tac-Toe, Chess.

* Delete minimax.py

* Update minimax.py

* Minimax is a backtracking algorithm that is used in game theory to find the optimal move for a player, assuming that your opponent also plays optimally
2019-07-07 06:59:58 +02:00
Erfan Alimohammadi
69bed59036
Fix backtrack time complexity ()
* Update backtracking/all_permutations.py
2019-07-06 20:01:52 +04:30