20得票2回答
正则表达式调试

我正在调试一个正则表达式^(A+)*B在字符串AAAC上(来自rexegg.com的示例),我有两个不同的调试工具: regex101.com RegexBuddy v4 以下是结果(左侧为regex101): 我的问题主要不是关于步骤数,这对我也很重要,而是关于回溯是如何进行的...

10得票3回答
生成集合的所有划分

对于一个形如A = {1, 2, 3, ..., n}的集合。如果存在一个大小为k<=n的集合,满足以下定理,则称其为集合A的一个划分: a) 所有划分的并集等于原集合A b) 任意两个划分的交集为空集(它们不能拥有共同元素)。 例如,对于集合A = {1, 2,... n},我们可以...

27得票4回答
如何从数组中删除最后一个元素?

现在我正在使用递归回溯法,我的任务是在迷宫中找到最长的路径,迷宫用坐标表示为覆盖区域,并且墙壁的坐标存储在文件中。我已经创建了一个解析器来解析输入文件并构建墙壁,但我还将这些坐标存储在对象类型Coordinate的数组中,以便检查是否可以在下一个方格上移动“蛇”的下一块,然后我创建了这个方法,...

8得票2回答
学习回溯法、分支定界和动态规划算法的好资源有哪些?

CLRS似乎没有涉及回溯/分支限界算法。虽然我尝试了几个在线资源,但我无法编写代码来解决例如背包问题这样的问题,尽管我理解了它们的理念。因此,我想要一个东西,可能需要使用这三种方法之一解决问题,并至少给出伪代码。或者任何您认为有帮助的资源。

9得票3回答
Prolog中的简化旅行商问题

我已经查阅了类似的问题,但是没有找到与我的问题相关的任何内容。我正在努力寻找一种算法或一组“循环”,以使用数据库从CityA到CityB找到一条路径。 distance(City1,City2,Distance) 事实上,到目前为止我所做的是以下内容,但它总是在write(X)处回溯,然...

8得票1回答
是否存在K个整数的组合,它们的和等于给定的数字?

我被要求回答这个问题(它实际上是作业),已经想过使用哈希表,但我卡在了如何精确地使其工作的细节上。 以下是问题: 给定k个整数集合A1,A2,...,Ak,总大小为O(n),您应该确定是否存在a1 ϵ A1,a2 ϵ A2,...,ak ϵ Ak,使得a1+a2+...+ak−1=ak。...

10得票5回答
递归函数用于将字符串与通配符模式进行匹配

我整天都在尝试解决这个任务,但就是做不出来。 以下函数接受两个字符串,第二个(而不是第一个)字符串可能包含*(星号)。 *是字符串(空白、1个字符或更多字符)的替换,它可以出现一次、两次、多次或根本不存在,但不能与另一个*相邻(例如ab**c),无需检查这一点。public static b...

21得票4回答
如何优化骑士周游问题的算法?

我使用C++编写了骑士周游算法,采用了回溯方法。但是对于n>7(7x7棋盘以上),它似乎太慢或陷入无限循环中。 问题是:这个算法的时间复杂度是什么,如何进行优化?! “骑士巡游问题”的陈述如下: 给定一个大小为 n × n 的棋盘,找到一条骑士的路径,使其恰好经过每个方格一次。 这...

10得票2回答
解决Flood-It类谜题所需的最少点击次数

我有一个N×M的网格,每个单元格都被染上了一种颜色。 当玩家点击网格中任何一个颜色为α的单元格时,位于网格左上角且颜色为β的单元格将接收颜色α,但不仅如此:所有通过只使用颜色α或β的路径与源相连的单元格也将接收颜色α。 连接单元格应仅考虑水平和垂直方向以形成路径。例如,当玩家单击左侧图中突...

10得票6回答
如何生成一个多重集合的所有排列?

多重集合是一个集合,其中所有元素可能不唯一。如何枚举集合元素之间的所有可能排列?