The Wayback Machine - https://web.archive.org/web/20210831161444/https://github.com/TheAlgorithms/Python/commit/c824b90ead698da4f10ac38e431844d96af109b6
Skip to content
Permalink
Browse files
Remove redundent function in Backtracking Sudoku (#4499)
* 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
  • Loading branch information
GDWR committed Jun 10, 2021
1 parent b743e44 commit c824b90ead698da4f10ac38e431844d96af109b6
Showing with 1 addition and 27 deletions.
  1. +1 −27 backtracking/sudoku.py
@@ -59,27 +59,6 @@ def is_safe(grid: Matrix, row: int, column: int, n: int) -> bool:
return True


def is_completed(grid: Matrix) -> bool:
"""
This function checks if the puzzle is completed or not.
it is completed when all the cells are assigned with a non-zero number.
>>> is_completed([[0]])
False
>>> is_completed([[1]])
True
>>> is_completed([[1, 2], [0, 4]])
False
>>> is_completed([[1, 2], [3, 4]])
True
>>> is_completed(initial_grid)
False
>>> is_completed(no_solution)
False
"""
return all(all(cell != 0 for cell in row) for row in grid)


def find_empty_location(grid: Matrix) -> Optional[Tuple[int, int]]:
"""
This function finds an empty location so that we can assign a number
@@ -111,12 +90,7 @@ def sudoku(grid: Matrix) -> Optional[Matrix]:
>>> sudoku(no_solution) is None
True
"""

if is_completed(grid):
return grid

location = find_empty_location(grid)
if location is not None:
if location := find_empty_location(grid):
row, column = location
else:
# If the location is ``None``, then the grid is solved.

0 comments on commit c824b90

Please sign in to comment.