From df98142337852fb1ff1d908ad4202281b614ee5d Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Sat, 27 May 2023 18:10:59 -0400 Subject: [PATCH] Time: 12 ms (59.44%), Space: 5.9 MB (49.30%) - LeetHub --- 36-valid-sudoku/36-valid-sudoku.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 36-valid-sudoku/36-valid-sudoku.c diff --git a/36-valid-sudoku/36-valid-sudoku.c b/36-valid-sudoku/36-valid-sudoku.c new file mode 100644 index 0000000..7d64c36 --- /dev/null +++ b/36-valid-sudoku/36-valid-sudoku.c @@ -0,0 +1,27 @@ +bool isValidSudoku(char** board, int boardSize, int* boardColSize){ + bool rowFilter[9][9] = {}; + bool colFilter[9][9] = {}; + bool boxFilter[9][9] = {}; + + for (int row = 0; row < boardSize; ++row) { + for (int col = 0; col < boardColSize[row]; ++col) { + int box = ((int) (row / 3)) * 3 + ((int) (col / 3)); + int val = board[row][col] - '0' - 1; + + if (val == ('.' - '0' - 1)) { + continue; + } + + if (rowFilter[row][val] || colFilter[col][val] || boxFilter[box][val]) { + return false; + } + + rowFilter[row][val] = true; + colFilter[col][val] = true; + boxFilter[box][val] = true; + + } + } + + return true; +} \ No newline at end of file