動態規劃 矩陣最小路徑和

2021-08-01 23:09:28 字數 723 閱讀 2156

int min(int a, int b)

int getmin(vector> map, int n, int m)

dp[0][0] = map[0][0];

for (int i = 1; i < m; i++)

dp[0][i] = dp[0][i - 1] + map[0][i];

for (int i = 1; i < n; i++)

dp[i][0] = dp[i-1][0] + map[i][0];

for (int i = 1; i < n; i++)

}return dp[n - 1][m - 1];

}

有乙個矩陣map,它每個格仔有乙個權值。從左上角的格仔開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,返回所有的路徑中最小的路徑和。

給定乙個矩陣map及它的行數n和列數m,請返回最小路徑和。保證行列數均小於等於100.

思路:對於m第一行的所有位置,只能從0,0位置不斷向右到達,所以m第一行每個位置的最小路徑和就是m第一行的值不斷的累加得到的結果,同理m第一列每個位置的最小路徑和就是m第一列的值不斷累加的結果,位置[i][j],要麼是從【i-1】【j】向下到達,要麼從位置【i】【j-1】向右到達。

計算dp

的每個值,選擇從左到右的計算每行的位置,然後再從上到下計算每一行,最後最右下角的值就是問題的答案了。

動態規劃 矩陣最小路徑和

演算法專題導航頁面 題目描述 給定乙個 n m 的矩陣 a,從左上角開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,輸出所有的路徑中最小的路徑和。輸入描述 第一行輸入兩個整數 n 和 m,表示矩陣的大小。接下來 n 行每行 m 個整數表示矩陣。輸出描述 輸出乙個...

矩陣的最小路徑和 動態規劃

題目描述 給定乙個 n m 的矩陣 a,從左上角開始每次只能向右或者向下走,最後到達右下角的位置,路徑上所有的數字累加起來就是路徑和,輸出所有的路徑中最小的路徑和。示例 1,3,5,9 8,1,3,4 5,0,6,1 8,8,4,0 返回值 備註 1 n,m 2000 1 arri,j 100 我的...

動態規劃 最小路徑和

給定乙個只含非負整數的m n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。你在同一時間只能向下或者向右移動一步 樣例1 1 3 1 1 5 1 4 2 1 輸出 7 樣例2 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 輸出 12 計算到達當前位置路徑,是在上一步的基礎上...