1
class Solution {
2
public void solveSudoku(char[][] board) {
3
solve(board);
4
}
5

6
boolean solve(char board[][]) {
7
for (int i = 0; i < board.length; i++) {
8
for (int j = 0; j < board[0].length; j++) {
9
if (board[i][j] == '.') {
10
for (char c = '1'; c <= '9'; c++) {
11
if (isValid(board, c, i, j) == true) {
12
board[i][j] = c;
13

14
if (solve(board) == true) return true;
15
else board[i][j] = '.';
16
}
17
}
18
return false;
19
}
20
}
21
}
22
return true;
23
}
24

25
boolean isValid(char board[][], char c, int row, int col) {
26
for (int i = 0; i < 9; i++) {
27
if (board[row][i] == c) return false;
28
if (board[i][col] == c) return false;
29
if (board[3 * (row / 3) + (i / 3)][3 * (col / 3) + (i % 3)] == c) return false;
30
}
31
return true;
32
}
33
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0