繁体   English   中英

寻找一个路径,其元素求和成矩阵中的给定数

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

给定一个M x N矩阵和一个正整数p ,我怎样才能找到的连续路径递归地通过起始于位置的矩阵0,0 ,将总和为p 您可以向左(col-1),向右(col + 1),向上(row-1)或向下(row + 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棵树,并选择任意方向进行测试。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM