有效的数独
https://leetcode-cn.com/problems/valid-sudoku/
代码
public static boolean isValidSudoku(char[][] board) {
List<Set<Integer>> rowList = new ArrayList<>(9);
List<Set<Integer>> colList = new ArrayList<>(9);
List<Set<Integer>> blockList = new ArrayList<>(9);
for (int i = 0; i < 9; i++) {
rowList.add(new HashSet<>(9));
colList.add(new HashSet<>(9));
blockList.add(new HashSet<>(9));
}
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[0].length; j++) {
char num = board[i][j];
Set<Integer> rowSet = rowList.get(i);
Set<Integer> colSet = colList.get(j);
int rowNum = (i / 3) * 3 + j / 3;
Set<Integer> blockSet = blockList.get(rowNum);
if (num != '.') {
Integer num2 = num - '0';
if (!rowSet.contains(num2)) {
rowSet.add(num2);
} else {
return false;
}
if (!colSet.contains(num2)) {
colSet.add(num2);
} else {
return false;
}
if (!blockSet.contains(num2)) {
blockSet.add(num2);
} else {
return false;
}
}
}
}
return true;
}
public static void main(String[] args) {
// char[][] board=new char[][] {{'8','3','.','.','7','.','.','.','.'},
// {'6','.','.','1','9','5','.','.','.'},
// {'.','9','8','.','.','.','.','6','.'},
// {'8','.','.','.','6','.','.','.','3'},
// {'4','.','.','8','.','3','.','.','1'},
// {'7','.','.','.','2','.','.','.','6'},
// {'.','6','.','.','.','.','2','8','.'},
// {'.','.','.','4','1','9','.','.','5'},
// {'.','.','.','.','8','.','.','7','9'}};
char[][] board = new char[][]{{'5', '3', '.', '.', '7', '.', '.', '.', '.'},
{'6', '.', '.', '1', '9', '5', '.', '.', '.'},
{'.', '9', '8', '.', '.', '.', '.', '6', '.'},
{'8', '.', '.', '.', '6', '.', '.', '.', '3'},
{'4', '.', '.', '8', '.', '3', '.', '.', '1'},
{'7', '.', '.', '.', '2', '.', '.', '.', '6'},
{'.', '6', '.', '.', '.', '.', '2', '8', '.'},
{'.', '.', '.', '4', '1', '9', '.', '.', '5'},
{'.', '.', '.', '.', '8', '.', '.', '7', '9'}};
boolean validSudoku = isValidSudoku(board);
System.out.println(validSudoku);
}
来源:CSDN
作者:houjibofa2050
链接:https://blog.csdn.net/u011243684/article/details/104143954