三角形最小路徑和

2022-05-07 11:18:08 字數 912 閱讀 9572

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

例如,給定三角形:

[

[2],

[3,4],

[6,5,7],

[4,1,8,3]

]

自頂向下的最小路徑和為11(即,2 + 3 + 5 + 1 = 11)。

方法一:

用二維陣列做,先定義乙個二維陣列arr,陣列大小為所傳引數的大小+1;然後從底向上遍歷陣列(按遞推公式:arr[i][j] = math.min(arr[i+1][j],arr[i+1][j+1]+該位置的值),最後返回第乙個元素,**如下:

public

static

int minimumtotal1(list>list)

}return arr[0][0];

}

方法二:

用一維陣列做,定義一維陣列dp,方法和方法一類似,其中dp[j]表示上一層的,然後在賦給當前層對應位置,遞推公式為

dp[j] = math.min(dp[j],dp[j+1])+當前位置的值;

**如下:

int len =list.size();

int dp = new

int[len+1];

for(int i = len-1;i>=0;i--)

}return dp[0];

三角形最小路徑和

一 問題解釋 給定乙個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。如 給定三角形11 即2 3 5 1 11 二 思路解釋 類似 楊輝三角 問題,採用動態規劃演算法 自三角形的第二行從上到下遍歷,體現在下標為i 1。因為二維向量由i 0開始,i 0代表第一行。每一行,從前...

三角形最小路徑和

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

三角形最小路徑和

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