120 三角形最小路徑和

2021-10-24 09:18:15 字數 1069 閱讀 2019

相鄰的結點 在這裡指的是 下標 與 上一層結點下標 相同或者等於 上一層結點下標 + 1 的兩個結點。

題解思路:

方法一:二維動態規劃,自頂向下 含優化版本

1.初始化第一行dp[0][0]=********[0][0];

2.狀態轉移方程:當j=0時,dp[i][0]=********[i][j]+dp[i-1][j];

當j=********[i].size()-1時,也就是第i行的最後乙個元素時,

dp[i][j]=********[i][j]+dp[i-1][j-1];

當j介於兩者之間,dp[i][j]=min(d[[i-1][j-1],dp[i-1][j])+********[i][j];

3.求最小值,記得在最後一行去求,i從0到n-1,dp[m-1][i]最小值就是最短路徑之和。因為最後不是dp[m-1][n-1],所以需要最後遍歷一下。

函式**:

;**優化後:

class

solution

dp[i]

[i]=********[i]

[i]+dp[i-1]

[i-1];

}int res=int_max;

for(

int i=

0;i)return res;}}

;

120 三角形最小路徑和

我現在知道怎麼結合遞迴和動態規劃的方法了,不需要寫出遞迴到方法。當熟練後,繼續用遞迴的方式思考問題,只不過是在腦中將其轉化為動態規劃,這道題就是例子。只不過我只寫出了n2的,對我來說我已經挺滿意了,畢竟我本地測試後oj一次性通過 阿,我知道了,他們到空間複雜的n是指每次只儲存上一行的值,還有人更雞賊...

120 三角形最小路徑和

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3 4 6,5 7 4,1 8,3 自頂向下的最小路徑和為 11 即,2 3 5 1 11 說明 如果你可以只使用 o n 的額外空間 n 為三角形的總行數 來解決這個問題,那麼你的演算法會很加分。...

120 三角形最小路徑和

120.三角形最小路徑和 給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為11 即,2 3 5 1 11 說明 如果你可以只使用 o n 的額外空間 n 為三角形的總行數 來解決這個問題,...