[LeetCode]--36. Valid Sudoku

    xiaoxiao2026-03-18  7

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.

    The Sudoku board could be partially filled, where empty cells are filled with the character ‘.’.

    A partially filled sudoku which is valid.

    Note: A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

    Subscribe to see which companies asked this question

    public class _36ValidSudoku { public boolean isValidSudoku(char[][] board) { boolean[] visited = new boolean[9]; // row for (int i = 0; i < 9; i++) { Arrays.fill(visited, false); for (int j = 0; j < 9; j++) { if (!process(visited, board[i][j])) return false; } } // col for (int i = 0; i < 9; i++) { Arrays.fill(visited, false); for (int j = 0; j < 9; j++) { if (!process(visited, board[j][i])) return false; } } // sub matrix for (int i = 0; i < 9; i += 3) { for (int j = 0; j < 9; j += 3) { Arrays.fill(visited, false); for (int k = 0; k < 9; k++) { if (!process(visited, board[i + k / 3][j + k % 3])) return false; } } } return true; } private boolean process(boolean[] visited, char digit) { if (digit == '.') { return true; } int num = digit - '0'; if (num < 1 || num > 9 || visited[num - 1]) { return false; } visited[num - 1] = true; return true; } }

    访问小范围的九宫格就有点麻烦。board[i + k / 3][j + k % 3],用这个表示就很好。

    最新回复(0)