一次遍历
- boolean[ ][ ] row = new boolean[9][10];
- boolean[ ][ ] col = new boolean[9][10];
- boolean[ ][ ] bucket = new boolean[9][10];
- bucket[3][7] 表示第4个九宫二是否出现过7
public boolean rowsValrowdSudoku(char[][] board) { boolean[][] row = new boolean[9][10]; boolean[][] col = new boolean[9][10]; boolean[][] bucket = new boolean[9][10]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { // 怎么定位第几个九宫格 int bid = (i / 3) * 3 + (j / 3); if (board[i][j] != '.') { int num = board[i][j] - '0'; if (row[i][num] || col[j][num] || bucket[bid][num]) { return false; } row[i][num] = true; col[j][num] = true; bucket[bid][num] = true; } } } return true; }