根据题目用JS写出算法,请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 1.数字 1-9 在每一行只能出现一次。 2.数字 1-9 在每一列只能出现一次。 3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。
时间: 2024-06-10 21:07:49 浏览: 31
好的,对于您的问题,我可以提供以下的 JS 算法来判断一个 9 x 9 的数独是否有效:
```js
function isValidSudoku(board) {
// Check rows
for (let i = 0; i < 9; i++) {
const rowSet = new Set();
for (let j = 0; j < 9; j++) {
const num = board[i][j];
if (num === ".") continue;
if (rowSet.has(num)) return false;
rowSet.add(num);
}
}
// Check columns
for (let j = 0; j < 9; j++) {
const colSet = new Set();
for (let i = 0; i < 9; i++) {
const num = board[i][j];
if (num === ".") continue;
if (colSet.has(num)) return false;
colSet.add(num);
}
}
// Check 3x3 boxes
for (let box = 0; box < 9; box++) {
const boxSet = new Set();
const startRow = Math.floor(box / 3) * 3;
const startCol = (box % 3) * 3;
for (let i = startRow; i < startRow + 3; i++) {
for (let j = startCol; j < startCol + 3; j++) {
const num = board[i][j];
if (num === ".") continue;
if (boxSet.has(num)) return false;
boxSet.add(num);
}
}
}
return true;
}
```
此算法会遍历数独的所有行、列和 3x3 方块,对于每一个区域,均使用一个 Set 来记录该区域出现过的数字,如果发现出现重复数字,则说明该数独无效。希望这个算法能解决您的问题!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)