问题标签 [recursive-backtracking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
715 浏览

c++ - void 类型如何处理递归回溯返回

为了概括这个问题,我从 Zelenski CS 课程讲义中借用了材料。而且,这与我的具体问题有关,因为几年前我从不同的讲师那里上课并学习了这种 C++ 方法。讲义在这里。由于我偶尔使用它,因此我对 C++ 的理解很低。基本上,有几次我需要编写一个程序,我回到课堂材料,找到类似的东西并从那里开始。

在此示例中(第 4 页),Julie 正在字符串函数中使用递归算法查找单词。为了减少递归调用的次数,她添加了一个决策点bool containsWord()

为了增加如何使用该算法的灵活性,可以将其实现为 void 类型吗?

而且,没有回报怎么办

0 投票
1 回答
1738 浏览

javascript - 递归回溯生成迷宫

我正在尝试使用递归回溯算法编写迷宫生成器。我已经从这篇文章中获取了示例代码,并且或多或少地将其翻译成 javascript。但它似乎不起作用,因为生成的网格中的所有行都是相同的。

我对这种事情一无所知,我被困在这里。任何人都可以看到我做错了什么?

编辑jsfiddle

0 投票
2 回答
79 浏览

c - 8皇后密码不起作用

我一直在尝试调试我制作的这段代码,它在数组的第一行只输出 1,所有其他元素都为零(从第二行到最后一个元素。),是不是传递数组的函数调用问题按价值或其他方式。帮助表示赞赏。

0 投票
1 回答
895 浏览

java - 骑士巡回赛回溯持续时间过长

在 8x8 板上回溯解决骑士巡回赛问题需要多长时间?因为我的算法已经以某种方式计算得太长了,而且看起来,它不会完成。但是当我尝试 6x6 或 5x5 板时,它成功完成。

编码:

0 投票
1 回答
4274 浏览

c++ - 回溯范式:是否可以在没有递归的情况下做到这一点?

示例:使用回溯求解数独

你如何在没有递归的情况下回溯 - 使用循环?我只有在您调用 backtrack() 本身时才找到解决方案。

0 投票
2 回答
6118 浏览

java - 使用递归找到所有可能的最长递增子序列

我试图使用递归找到所有可能的最长递增子序列。当我尝试输入数组{10,22,9,33,21,50,41,40,60,55}时,它起作用了,输出为:

但是当我尝试输入数组时{2,-3,4,90,-2,-1,-10,-9,-8},我得到了一个输出:

在这种情况下,我没有得到2 4 90. 我应该在我的代码中进行哪些更改以使其适合这种情况?

0 投票
1 回答
282 浏览

c - 我在用递归回溯算法解决 C 中的数独时遇到问题

我可以解决一个简单的难题,但尝试稍微难一点的难题是不可能的;我在看什么?这是我的求解器方法:

我的 checkEverything 函数检查以确保给定的数字可以安全地放置在行、列和 3x3 网格中……我很迷茫,因为它似乎对我来说是正确的,但它太慢了。谢谢你的帮助!

0 投票
4 回答
10463 浏览

algorithm - 如何编写迭代算法来生成集合的所有子集?

我编写了递归回溯算法来查找给定集合的所有子集。

现在我们必须以迭代的形式编写相同的算法,该怎么做?

0 投票
0 回答
3244 浏览

java - 在迷宫中寻找路径

我最近接受了一次采访,被问到以下问题。

迷宫是一组链接的地方。每个地方都有与其相邻的北、南、东和西地方。有两个特殊的预定义 Place 的: Place Wall 代表一堵墙——鼠标不能去那里。地方奶酪是……奶酪!地方之间的连接是对称的——如果你从任何地方开始,然后向北走,然后向南走,你就会回到原来的地方。

为简化起见,迷宫没有闭环——也就是说,如果你从任何地方开始并沿着任何路径走,你最终要么撞到墙,要么找到奶酪——除非你真的回溯你的脚步,否则你永远不会回到你开始的地方.

一只老鼠从某个地方开始四处寻找奶酪。当它找到 Cheese 时,它​​会返回一组方向 - 一串字母 NSEW,从它开始的位置指向 Cheese。

以下框架定义了类和函数。此处未包含的其他一些代码通过创建一堆 Place 并链接它们来生成迷宫。然后它调用 mouse(),从迷宫中传递一些起始位置:

实现 findCheese()。您可以将所需的任何字段或辅助方法添加到鼠标。额外功劳:消除“无闭环”限制。也就是说,更改您的代码以使其正常工作,即使可能存在像 SSNEEW 这样的路径将鼠标引导回它开始的地方。

这是我尝试过的。我知道这不是最好的或优化的解决方案,我希望得到关于我还能尝试什么的反馈。我没有考虑额外的信用部分

0 投票
1 回答
330 浏览

recursion - 回溯和递归解决迷宫

我的任务是使用回溯和递归的方法解决迷宫。这更多是关于这个概念的概念问题。

回溯电话是如何到达的?从我看到的所有示例中,似乎总是在回溯步骤之前立即调用递归,因此无法达到回溯。谁能向我解释如何达到回溯步骤?