算法介绍
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。
- 数字 1-9 在每一行只能出现一次。
- 数字 1-9 在每一列只能出现一次。
- 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/probl...
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
代码
public boolean isValidSudoku(char[][] board) {
for(int i = 0;i < board.length;i++){
// 判断该行
ArrayList<Integer> olds = new ArrayList<>();
for (int j = 0;j < board[i].length;j++){
if(i % 3 == 0 && j % 3 == 0){
ArrayList<Integer> newOlds = new ArrayList<>();
//判断该单元格
for (int m = 0;m < 3;m++){
for (int k = 0;k < 3;k++){
char item = board[i+m][k+j];
if(item == '.') continue;
if(newOlds.indexOf((int)item) >= 0){
return false;
}
newOlds.add((int)item);
}
}
}
char item = board[i][j];
if(item == '.') continue;
if(olds.indexOf((int)item) >= 0) return false;
olds.add((int) item);
}
// 判断该列
olds.clear();
for (int j = 0;j < board.length;j++){
char item = board[j][i];
if(item == '.') continue;
if(olds.indexOf((int)item) >= 0) return false;
olds.add((int)item);
}
}
return true;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。