120.三角形最小路徑和
- 三角形最小路徑和
難度中等387
給定一個三角形,找出自頂向下的最小路徑和。每一步只能移動到下一行中相鄰的結點上。
例如,給定三角形:
[ [2], [3,4], [6,5,7], [4,1,8,3] ]
自頂向下的最小路徑和爲 11(即,2 + 3 + 5 + 1 = 11)。
dp
//自底向上
public int minimumTotal(List<List<Integer>> triangle) {
int [] dp = new int [triangle.size()+1];
for(int level=triangle.size()-1;level>=0;level--){
for(int i=0;i<triangle.get(level).size();i++){
dp[i] = Math.min(dp[i],dp[i+1])+triangle.get(level).get(i);
}
}
return dp[0];
}