![]() |
1
2
“当它只向下和向右移动两个方向”相关问题的简单部分是,路径不能自身重复。如果您允许所有四个方向,就像您当前的问题一样,您需要限制Alfie访问一个单元格的次数不得超过一次。如果没有这个限制,阿尔菲可以在两个细胞之间来回振荡,或者继续循环,从而产生无限多条路径。所以我们增加了限制:一个小区最多只能访问一次。
我们需要实施这一限制。做这件事的一个简单方法是做一秒钟
现在有多种算法可以解决这个问题。也许最简单的方法是有一个外部例程来设置,并调用一个内部递归例程来添加路径。这里是一些类似Python的伪代码,为了清晰起见,忽略了一些效率。请注意,Python中的矩阵是基于零的,因此监狱的两个角位于(0,0)和(N-1,N-1)。
由于每个单元格的方向顺序一致(本代码中为右、左、下、上),因此每条路径都是唯一的。我已经用这个算法构建了一个完整的Python程序,它很有效,在所有三个示例中都给出了所需的答案。 |
![]() |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
![]() |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |