gpt4 book ai didi

java - StackOverflowError when running my "Knight' s Tour”(否则就差不多完成了)

转载 作者:行者123 更新时间:2023-11-29 03:57:59 25 4
gpt4 key购买 nike

我正在尝试制作一个程序,它与一个骑士一起遍历棋盘的所有方格(大小并不重要,但现在是 6x6),称为“骑士之旅”check it out on wiki .

游览应该是关闭的,这意味着最后一次访问的方格上的骑士可以“攻击”他开始的方格。该代码适用于某些方 block ,例如,在 main 中输入“traverse(1,1,1)”会生成输出,该输出显示他不仅在遍历而且在回溯并成功返回到目标的遍历。但是,如果我输入“traverse(1,0,0)”,我会得到一个 StackOverflowError。因为它有时会成功,回溯和遍历,我知道代码有效,我只是不知道如何摆脱错误。我假设我打了太多电话,但我不知道如何解决这个问题,有很多广场可以参观:)编辑了代码,主要是因为老师可以发现它说我作弊。

最佳答案

您正在尝试使用递归解决指数复杂度问题。这在非常小的输入之外是行不通的。堆栈大小的增长速度远快于问题的大小。通过堆栈不需要非常大的问题大小。

您不会让 StackOverflowErrors 消失。您需要重新考虑您的算法以基于循环而不是基于递归。

关于java - StackOverflowError when running my "Knight' s Tour”(否则就差不多完成了),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200983/

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