本文共 1353 字,大约阅读时间需要 4 分钟。
要判断一个9x9数独是否有效,需要确保每一行、每一列以及每个3x3的小宫内的数字1-9不重复。通过以下步骤可以有效地实现这个检查:
public class Solution { public boolean isValidSudoku(char[][] board) { boolean[][] rowFlag = new boolean[9][9]; boolean[][] colFlag = new boolean[9][9]; boolean[][] cellFlag = new boolean[9][9]; int m = board.length; int n = board[0].length; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { char cc = board[i][j]; if (cc != '.' && cc != '0') { int c = cc - '0'; if (rowFlag[i][c] || colFlag[j][c] || cellFlag[3 * (i / 3) + (j / 3)][c]) { return false; } rowFlag[i][c] = true; colFlag[j][c] = true; cellFlag[3 * (i / 3) + (j / 3)][c] = true; } } } return true; }} 这样,可以高效地判断数独是否有效,满足规则要求。
转载地址:http://ivhiz.baihongyu.com/