给定一个成本矩阵cost[][]和cost[][]中的一个位置(m,n),写一个函数,返回从(0,0)到(m,n)的最小成本路径的成本。矩阵的每个单元格表示遍历该单元格的成本。一条路径到达(m,n)的总成本是该路径上所有成本的总和(包括源和目的地)。您只能从给定的单元格中向下、向右和沿对角线向下遍历单元格,即从给定的单元格(i,j),可以遍历单元格(i+1,j),(i,j+1)和(i+1,j+1)。您可以假定所有成本都是正整数。
例如,在下图中,到(2,2)的最小成本路径是什么?
下图突出显示了成本最小的路径。路径是(0,0)->(0,1)->(1,2)->(2,2)。路径的开销为8(1+2+2+3)。
function minCost(array, m, n){
let tc = [m+1][n+1]
tc[0][0] == array[0][0]
for (let i = 1; i <= m; i++) {
tc[i][0] = tc[i-1][0] + cost[i][0]
}
for (i = 1; i <= m; i++){
tc[i][0] = tc[i-1][0] + cost[i][0];
}
/* Initialize first row of tc array */
for (j = 1; j <= n; j++){
tc[0][j] = tc[0][j-1] + cost[0][j];
}
/* Construct rest of the tc array */
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
tc[i][j] = min(tc[i-1][j-1],tc[i-1][j], tc[i][j-1]) + cost[i][j];
}
}
return tc[m][n];
}
console.log(minCost([
[1,2,3],
[4,8,2],
[1, 5, 3]
],2,2))
我面临一个问题来解决这个算法问题。所以我尝试了一些方法,但代码出现了错误。有人能识别出我的代码中的问题在哪里吗?
你好,亲爱的朋友们。 我想在随机图中找到最短路径。我使用boost图形库。据我所知,我需要利用点之间的现有距离构建图形。之后,我需要使用一些算法。。。 正如我所见,Dijkstra的算法实际上是找到从1点到其他点的所有路径。(应该很慢?) A*需要一些额外的数据(不仅仅是距离) 如何找到2点之间的最短路径?我在bgl文件夹中看到了许多最短路径算法标头,但我没有找到如何使用它们的示例。 此外,我可以
我遇到了一个问题,这个问题涉及到一个目录树,以及在这个目录树中找到最小和最大长度的路径。问题在于: 给定一个目录和文件名的字符串,其中“-”的数字表示所有目录之间的关系(例如目录中的文件和目录),找出最小和最大的路径长度。 例如,具有以下内容的字符串: 显示了file1、file2、innderDir1和innderDir 2都在目录dir1中。file11、file12、file13和inner
我有一个问题: 我已经做了: 作曲家更新
我在JavaFX中创建了一个迷宫游戏,用户可以创建自己的迷宫并玩它。迷宫是使用带有CSS IDs的按钮构建的,CSS IDs取决于关卡临时存储的二维数组。 问题出现在项目的下一部分。我创建了一个生成随机迷宫的算法。为了使水平成为可能,我需要检查迷宫是否可解(即,你可以从起点(0,3)到终点(6,3))。 我使用相同的显示算法创建了一个单独的项目,类如下: 主要.java Runner.java M
给了我一个问题,上面写着: 给定一个具有整数权值(正负两种)的连通有向图,发展一种求两顶点之间最短路径的算法。 我想我可以使用最小生成树算法,比如Kruskal的算法,然后用Dijkstra的算法来证明,因为在MST中,每个顶点只有一条内边,Dijkstra的算法即使在负权值下也能工作。 这听起来像是共食吗? 附注。我很难证明MST包含有向图的每个顶点的最短路径。
在一个具有不同正边的无向图中,是否可能有一个MST与最短路径树没有公共边? 我一直试图引出不同的例子,但似乎这是不可能的。最短路径树中的最短路径边似乎也应该包括在MST中。