[英]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.