最小路徑和 演算法

2021-10-01 11:28:38 字數 810 閱讀 2487

題目描述:、

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。

說明:每次只能向下或者向右移動一步。

示例:輸入:

[[1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

解釋: 因為路徑 1→3→1→1→1 的總和最小。

利用動態規劃法計算,分為以下幾種情況:

定義i,j分別為行,列

1、當i==0 && j==0,表示是左上角第乙個元素,此時改單元格的值就是它自己的值

grid[i][j] = grid[i][j]

2、當i在邊界的時候,就是走在第一行,單元格的值是左邊單元格加上本身單元格

grid[i][j] = grid[i][j-1] + grid[i][j]

3、當j在邊界的時候,就是走在第一列,單元格的值是上邊單元格加上本身單元格

grid[i][j] = grid[i-1][j] + grid[i][j]

4、當i和j都不在邊界,就是需要計算出左邊和上邊的那個值最小,再加上本身單元格的值

grid[i][j] = math.min(grid[i-1][j] ,grid[i][j-1])+ grid[i][j]

具體演算法如下:

class solution else if(i==0) else if (j==0) else{

grid[i][j] = math.min(grid[i][j-1],grid[i-1][j])+grid[i][j];

return grid[row-1][col-1];

演算法之最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。class solution if grid.leng...

最小路徑和

給定乙個只含非負整數的m n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。注意事項 你在同一時間只能向下或者向右移動一步 這道題和之前做的一道三角形的動態規劃差不多,但是更難一些,例a b c d e f g h i 如果要到i就必須從f 或h走,只要選出其中較小的即可,再用遞迴算出走每乙...

最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。1 動態規劃 1,要明白上邊界線的點只能由它的上乙個點向右移...