有效的数独

先检测行和列,然后检测九个九宫格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
* @param {character[][]} board
* @return {boolean}
*/
var isValidSudoku = function (board) {
// 检测行、列
for (let row = 0; row < 9; row++) {
const rowSet = new Set();
const colSet = new Set();
for (let col = 0; col < 9; col++) {
if (board[row][col] !== "." && rowSet.has(board[row][col])) {
return false;
} else {
rowSet.add(board[row][col]);
}
if (board[col][row] !== "." && colSet.has(board[col][row])) {
return false;
} else {
colSet.add(board[col][row]);
}
}
}
// 检测九个九宫格
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 3; j++) {
const set = new Set();
for (let row = i * 3; row < (i + 1) * 3; row++) {
for (let col = j * 3; col < (j + 1) * 3; col++) {
if (board[row][col] !== "." && set.has(board[row][col])) {
return false;
} else {
set.add(board[row][col]);
}
}
}
}
}
return true;
};
// console.log(
// isValidSudoku([
// ["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"],
// ])
// );


本站由 ao 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。