gpt4 book ai didi

java - 无法弄清楚如何将回溯合并到我的伪递归方法中

转载 作者:行者123 更新时间:2023-12-02 00:25:13 25 4
gpt4 key购买 nike

这是一个数独求解器,每个方 block 都有这个方法。我的想法是,如果此方法的一个实例经过循环而没有找到任何有效值,它将返回到调用它的上一个方法并继续循环 - 尝试 for 循环中的下一个值。我希望这足以回溯,但我所有的测试都失败了,我完全不知道如何解决这个问题。/结束菜鸟哀叹

public boolean recursive() {

for(int i = 1; i <= boardSize; i++) {

if(!validValue(i)) {
continue;
} else {
setValue(i);

if(getNext() == null) // This signifies that I am at the end of the list
return true;
else
getNext().recursive(); // same method in the next sudoku square
}
}

return false;
}

最佳答案

这里有两个正确性问题:

  1. 您应该检查递归调用的结果是否为true - 如果是,您应该停止递归 - 您已经找到了解决方案,不要覆盖它!
  2. 您应该冒泡递归的返回值,特别是 - 如果 getNext().recursive(); 产生 true - 您应该冒泡此 true 向上 [如 (1) 中所述 - 停止递归,你就有了解决方案!]

关于java - 无法弄清楚如何将回溯合并到我的伪递归方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com