这是Pramp的问题。我需要确定数独功能是否可解决(与LEETcode问题不同,我只需要查看电路板是否有效)。
下面是我使用递归的JavaScript代码。我遵循Pramp上建议的逻辑,即创建一个辅助函数getCandidates()来查找可以进入空白空间的所有候选编号。然后,在实际的sudokuSolve()函数中,找到候选集最小的空白空间,将这些候选内容输入空白空间,然后尝试使用递归求解电路板。如果可行,则该板是可解决的。
我的代码每次都是正确的,我找不到问题。我已经研究了互联网上提出的其他类似问题,但大多数问题都是为数独板找到确切的解决方案或生成数独板。我只需要查看一块木板是否可解决。如果可以的话,请告诉我我的代码哪里有错,我将非常感谢。
无论测试案例是什么,我现在每次都得到“ true” ...对于提供的这个测试案例,答案应该为false。
const test02 = [
['.', '8', '9', '.', '4', '.', '6', '.', '5'],
['.', '7', '.', '.', '.', '8', '.', '4', '1'],
['5', '6', '.', '9', '.', '.', '.', '.', '8'],
['.', '.', '.', '7', '.', '5', '.', '9', '.'],
['.', '9', '.', '4', '.', '1', '.', '5', '.'],
['.', '3', '.', '9', '.', '6', '.', '1', '.'],
['8', '.', '.', '.', '.', '.', '.', '.', '7'],
['.', '2', '.', '8', '.', '.', '.', …Run Code Online (Sandbox Code Playgroud)我知道我可以在 MDN 上找到一组 mutator 方法,但实际上我总是忘记 push() 或 reverse() 之类的方法是否会改变原始数组或创建一个新数组。为什么某些方法是变异器而有些是非变异器,所以我很容易记住,这是否有逻辑?