查找其元素总和为矩阵中给定数字的路径

Finding a path whose elements sum up to a given number in a matrix

本文关键字:数字 路径 元素 查找      更新时间:2023-10-16

给定一个M x N矩阵和一个正整数p,我怎样才能从位置0,0开始,以递归的方式通过矩阵找到一条连续路径,总和为p?您可以向左移动 (col - 1(、向右移动 (col + 1(、向上移动(行 - 1(或向下移动(行 + 1(,并且只能在路径中使用一次位置。如果矩阵中有这样的路径,则将其输出到具有相同形状的单独矩阵中,方法是用 1 填充路径上的位置,用 0 填充其余位置。

我真的僵住了,可以做任何事情,有什么技巧可以解决这类问题吗?如何继续解决这个问题,解决方案将不胜感激。

下面是一个示例,其中p = 73

2  8  15 
1  10 5
19 19 3  
5  6  6
2  8  2

输出:

1  0  0
1  0  0
1  1  1
1  1  1
1  1  1
">

应该随机移动"(可能是故意的(具有误导性。 您要做的实际上是深度优先搜索,系统地测试可能的路线。 如果路由等于(您已完成(或超过目标数量,则路由将终止,在这种情况下,您将备份。

如果我们假设路线不能加倍(你没有说(,那么有效的是左(或右(边缘跟随模式,就像标准的迷宫求解器一样。 因此,在访问的每个新节点上,它继续到最左侧未访问的相邻节点,随后沿顺时针方向尝试其他相邻节点。

(如果路由可以重新访问节点,则将矩阵视为 4 树,并选择一个任意方向首先进行测试。