120-Triangle
0x0 题目详情
0x1 解题思路
0x2 代码实现
---
``` java "动态规划版本"
class Solution {
public int minimumTotal(List<List<Integer>> triangle) {
if(triangle==null || triangle.size()==0){
return 0;
}
if(triangle.size()<2){
return triangle.get(0).get(0);
}
return recur(triangle,0,0);
}
private int recur(List<List<Integer>> triangle,int row,int col){
List<Integer> last=triangle.get(triangle.size()-1);
int[] dp=new int[last.size()];
for(int i=0;i<dp.length;i++){
dp[i]=last.get(i);
}
int N=triangle.size()-2;
int M=dp.length-2;
for(int i=N;i>=0;i--){
for(int j=0;j<=M;j++){
dp[j]=Math.min(dp[j],dp[j+1])+triangle.get(i).get(j);
}
M--;
}
return dp[0];
}
}0x3 课后总结
Last updated