让我们将螺旋路径定义为一种运动循环方式为 [右,下,左,上,右,下,左,上,...](注意,您不需要必须从右侧开始,只需在向上后紧随其后的是向下,在向右之后紧随其后的是向左,以此类推)。但是,路径不能与自身相交。
给定一个网格,如何找到通过这样的路径可以达到的最大总和?
例如,如果网格为
-5 -4 -3 3 2 1 -1 2 4
最大化总和的螺旋路径是
-5 -4 -3 3 2 1 -1 2 4
路径如下:{3, 2, 1, 4, 2}
我的想法是,这可以通过某种前缀和方法解决,但我不太确定如何处理。另一个想法是从每个点运行深度优先搜索,但那将是一个效率太低的算法。
给定一个网格,如何找到通过这样的路径可以达到的最大总和?
例如,如果网格为
-5 -4 -3 3 2 1 -1 2 4
最大化总和的螺旋路径是
-5 -4 -3 3 2 1 -1 2 4
路径如下:{3, 2, 1, 4, 2}
我的想法是,这可以通过某种前缀和方法解决,但我不太确定如何处理。另一个想法是从每个点运行深度优先搜索,但那将是一个效率太低的算法。