相关标签
一、题目要求
二、题解和代码实现
1.题解
2.代码实现
class Solution {
public int minimumTotal(List<List<Integer>> triangle) {
int n = triangle.size();
// dp[i][j] 表示从点 (i, j) 到底边的最小路径和。
int[][] dp = new int[n + 1][n + 1];
// 从三角形的最后一行开始递推。
for (int i = n-1; i >=0; i--) {
for (int j = 0; j <=i; j++) {
dp[i][j] = Math.min(dp[i+1][j],dp[i+1][j+1])+triangle.get(i).get(j);
}
}
return dp[0][0];
}
}
总结
自顶向下 改为自底向上递推,可以减少对边界值的判断