三角形最小路徑和

2021-09-27 03:01:02 字數 496 閱讀 6497

一、問題解釋:

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。

如:給定三角形11(即2+3+5+1=11)。

二、思路解釋:

類似「楊輝三角」問題,採用動態規劃演算法:

自三角形的第二行從上到下遍歷,體現在下標為i=1。因為二維向量由i=0開始,i=0代表第一行。

每一行,從前往後遍歷********[i]這個向量,並用已經儲存的dp陣列更新********[i]。

每行第乙個元素:********[i][j] += dp[j];

每行其餘元素:********[i][j] += dp[j-1];

3. 每一行遍歷完成後,重新儲存回dp陣列,以用來更新三角形的下一行

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

dp[j] = ********[i][j];

4.所有行都遍歷完成後,取dp中最小的那個數返回。

三角形最小路徑和

題目 力扣 解題思路 先用了回溯法,超時了,後來看題解有人用了動態規劃,我也自己想想了一下,最後想出來了,耶耶耶!class solution else return dp 0 回溯法,超時了 int res integer.max value int n public int minimumtot...

三角形最小路徑和

給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。例如,給定三角形 2 3,4 6,5,7 4,1,8,3 自頂向下的最小路徑和為11 即,2 3 5 1 11 方法一 用二維陣列做,先定義乙個二維陣列arr,陣列大小為所傳引數的大小 1 然後從底向上遍歷陣列 按遞推公...

三角形最小路徑和

問題 給定乙個三角形 找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。相鄰的結點 在這裡指的是 下標 與 上一層結點下標 相同或者等於 上一層結點下標 1 的兩個結點。也就是說,如果 正位於當前行的下標 i 那麼下一步可以移動到下一行的下標 i 或 i 1 示例 1 輸入 2 3,4...