国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

JS實現判斷有效的數獨算法示例

2024-05-06 16:48:27
字體:
來源:轉載
供稿:網友

本文實例講述了JS實現判斷有效的數獨算法。分享給大家供大家參考,具體如下:

判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。

1.數字 1-9 在每一行只能出現一次。
2.數字 1-9 在每一列只能出現一次。
3.數字 1-9 在每一個以粗實線分隔的 3x3 宮內只能出現一次。

JS,判斷,數獨,算法

數獨部分空格內已填入了數字,空白格用 ‘.' 表示。

示例 1:

輸入:

[
["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"]
]

輸出: true

示例 2:

輸入:

[
["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"]
]

輸出: false

解釋: 除了第一行的第一個數字從 5 改為 8 以外,空格內其他數字均與 示例1 相同。

但由于位于左上角的 3x3 宮內有兩個 8 存在, 因此這個數獨是無效的。

說明:

1.一個有效的數獨(部分已被填充)不一定是可解的。
2.只需要根據以上規則,驗證已經填入的數字是否有效即可。
3.給定數獨序列只包含數字 1-9 和字符 ‘.' 。
4.給定數獨永遠是 9x9 形式的。

<script>var isValidSudoku = function(board) { const boxes = [{}, {}, {}, {}, {}, {}, {}, {}, {}]; const cols = [{}, {}, {}, {}, {}, {}, {}, {}, {}]; const rows = [{}, {}, {}, {}, {}, {}, {}, {}, {}]; let test = [{}, {}, {}, {}, {}, {}, {}, {}, {}]; for (let i = 0; i < 9; i++) {  for (let j = 0; j < 9; j++) {   const digit = board[i][j];   if (digit !== '.') {    const k = Math.floor(j / 3) + (Math.floor(i / 3) * 3);    if (boxes[k][digit] || cols[j][digit] || rows[i][digit]) {     return false;    }    boxes[k][digit] = cols[j][digit] = rows[i][digit] = true;   }  } } return true;};const board = [ ["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"]]console.log(isValidSudoku(board))</script>

可得如下運行結果:

JS,判斷,數獨,算法

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湖州市| 年辖:市辖区| 苏州市| 沅江市| 金坛市| 江门市| 行唐县| 花莲县| 图片| 延安市| 全椒县| 伊春市| 乌审旗| 饶阳县| 江阴市| 常宁市| 永清县| 沙坪坝区| 中牟县| 璧山县| 灵璧县| 图片| 仲巴县| 基隆市| 晋中市| 那曲县| 罗田县| 北流市| 沙洋县| 麻江县| 远安县| 仙游县| 雷州市| 江西省| 甘泉县| 海宁市| 鄂托克前旗| 营山县| 永宁县| 龙口市| 嘉善县|