36. Valid Sudoku 发表于 2022-01-29 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556class Solution { public boolean isValidSudoku(char[][] board) { boolean[] appear = new boolean[9]; for (int i = 0; i < 9; i++) { Arrays.fill(appear, false); for (int j = 0; j < 9; j++) { if (board[i][j] == '.') { continue; } if (appear[board[i][j] - '1']) { return false; } else { appear[board[i][j] - '1'] = true; } } } for (int j = 0; j < 9; j++) { Arrays.fill(appear, false); for (int i = 0; i < 9; i++) { if (board[i][j] == '.') { continue; } if (appear[board[i][j] - '1']) { return false; } else { appear[board[i][j] - '1'] = true; } } } for (int i = 0; i <= 6; i += 3) { for (int j = 0; j <= 6; j += 3) { Arrays.fill(appear, false); for (int k = i; k < i + 3; k++) { for (int l = j; l < j + 3; l++) { if (board[k][l] == '.') { continue; } if (appear[board[k][l] - '1']) { return false; } else { appear[board[k][l] - '1'] = true; } } } } } return true; }} 12345678910111213141516171819202122232425class Solution { public boolean isValidSudoku(char[][] board) { int[][] rows = new int[9][9]; int[][] cols = new int[9][9]; int[][][] boxes = new int[3][3][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (board[i][j] != '.') { int index = board[i][j] - '1'; rows[i][index]++; cols[j][index]++; boxes[i / 3][j / 3][index]++; if (rows[i][index] > 1 || cols[j][index] > 1 || boxes[i / 3][j / 3][index] > 1) { return false; } } } } return true; }} Reference36. Valid Sudoku