移动度数为 8 时矩阵中的最小成本路径

Posted

技术标签:

【中文标题】移动度数为 8 时矩阵中的最小成本路径【英文标题】:min cost path in matrix when degree of movement is eight 【发布时间】:2014-02-25 10:15:39 【问题描述】:

这个问题的一个变种......

给定一个成本矩阵cost[][]cost[][] 中的一个位置(m, n),编写一个函数,返回从(0, 0) 到达(m, n) 的最小成本路径的成本。矩阵的每个单元格代表遍历该单元格的成本。到达(m, n) 的路径的总成本是该路径上所有成本的总和(包括源和目标)。您只能从给定单元格向下、向右和对角向下遍历单元格,即从给定单元格(i, j)、单元格(i+1, j)(i, j+1)(i+1, j+1) 可以遍历

Problem link

如果我们被允许遍历所有可能的方向,而不是这里允许的三个..现在如何解决这个变体.. 我尝试考虑回溯,但它不起作用.. 任何想法!!!!!!!!!

【问题讨论】:

【参考方案1】:

这是加权图中的shortest path problem,可通过Dijkstra's Algorithm(如果所有成本均为正数)或Bellman-Ford Algorithm 求解。

在这里,图表是G=(V,E),其中V=(x,y) | (x,y) is a cell in the matrixE=(u,v) | can move from cell u to cell v。 您的权重函数将是 w((x1,y1),(x2,y2)) = cost[x2][y2] 用于图中的每条边。

请注意,如果图表具有“负循环”,这两种算法都会失败 - 因为在此类图表中不存在最低成本。

【讨论】:

以上是关于移动度数为 8 时矩阵中的最小成本路径的主要内容,如果未能解决你的问题,请参考以下文章

矩阵中的最小路径和

329. 矩阵中的最长递增路径

329. 矩阵中的最长递增路径

LeetCode——矩阵中的最长递增路径

LeetCode. 矩阵中的最长递增路径

算法52-----矩阵最小路径动态规划