Valid Sudoku

use three 2-d matrix to store if any column, row or block has more than one specific value.

 1 public class Solution {
 2     public boolean isValidSudoku(char[][] board) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         boolean[][] rows = new boolean[9][9];
 6         boolean[][] cols = new boolean[9][9];
 7         boolean[][] blocks = new boolean[9][9];
 8 
 9         for (int i = 0; i < 9; ++i) {
10             for (int j = 0; j < 9; ++j) {
11                 if (board[i][j] == '.') continue;
12                 int c = board[i][j] - '1';
13                 if (rows[i][c] || cols[j][c] || blocks[i - i % 3 + j / 3][c])
14                     return false;
15                 rows[i][c] = cols[j][c] = blocks[i - i % 3 + j / 3][c] = true;
16             }
17         }
18         return true;
19     }
20 }
原文地址:https://www.cnblogs.com/jasonC/p/3408720.html