leetcode 最小路徑和

2021-10-03 15:42:43 字數 651 閱讀 8864

1.動態規劃

對於(i,j),其入口只有(i-1,j)和(i,j-1)兩個,故到達(i,j)的最小路徑為min(dp[i-1][j],dp[i][j-1])+(i,j)

故狀態轉移方程為:

dp[i][j]=min(dp[i-1][j],dp[i][j-1])+(i,j),

但需要注意初始化

對於上邊界,其路徑只能來自於左邊

對於左邊界,其路徑只能來自於上邊

**如下:

class solution {

public:

int minpathsum(vector>& grid) {

int m=grid.size();

int n=grid[0].size();

vector>dp(m,vector(n,0));

//初始化

dp[0][0]=grid[0][0];

//上邊界

for(int i=1;i時間複雜度為o(m*n),空間複雜度為o(m*n)

此外,可以讓grid陣列代替dp陣列,這樣空間複雜度為o(1)

Leetcode 最小路徑和

題目描述 乙個包含非負整數的 m n 的網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。樣例輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。官方題解 解題思路 1 因為每個網格都有向下或向右2...

Leetcode 最小路徑和

64.最小路徑和 先算第一行從前乙個節點到下乙個節點之和 for int i 1 i grid 0 length i 再算第一列從前乙個節點到下乙個節點之和 for int j 1 j grid.length j 接下來從 1,1 算從上乙個節點到當前節點之和 for int i 1 i grid....

LeetCode 64 最小路徑和

題目描述 提示幫助 提交記錄 社群討論 閱讀解答 隨機一題 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和...