本文给出了一个关于JS数独算法的例子。分享给大家参考,如下:
确定9x9数独是否有效。只需根据以下规则验证填写的数字是否有效。
1.数字1-9在每行只能出现一次。2.数字1-9在每一列中只能出现一次。3.数字1-9在用粗实线隔开的每3x3宫中只能出现一次。
数独的空白处已经填了数字,空白处用“.”表示。
示例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']]
输出:为真
示例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']]
输出:为假
说明:除了第一行中的第一个数字从5更改为8之外,空格中的其他数字与示例1中的相同。
但是因为左上角3x3宫有两个8,这个数独无效。
解释:
1.有效的数独(部分填充)不一定是可解的。2.只需根据上述规则验证填写的数字是否有效。3.给定的数独序列只包含数字1-9和字符“.”。4.给定的数独总是9x9的形式。
script var isValidSudoku=function(board){ const box=[{},{},{},{},{},{},{},{},{ },{ }];const cols=[{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{ }];const rows=[{},{},{},{},{},{},{},{},{},{ }];let test=[{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{ }];for(设I=0;I 9;i ) { for(让j=0;j9;j){ const digit=board[I][j];if(数字!=='.'){ const k=math . floor(j/3)(math . floor(I/3)* 3);if(box[k][digit]| | cols[j][digit]| | row[I][digit]){ return false;} box[k][数字]=cols[j][数字]=row[I][数字]=true;} } }返回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','
更多对JavaScript相关内容感兴趣的读者可以查看本网站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》和0103010
希望本文对JavaScript编程有所帮助。