class Solution {
public int minimumTotal(List<List<Integer>> triangle) {
int m=triangle.size();
int[][] arr=new int[m][m];
for (int i = 0; i < m; i++) {
for(int j = 0;j < i+1;j++){
arr[i][j]=triangle.get(i).get(j);
}
}
for(int i = 1;i < arr.length;i++) {
for(int j = 0; j < i+1;j++) {
if(j==0) {
arr[i][j] = arr[i-1][j] + arr[i][j];continue;
}if(j==i) {
arr[i][j] = arr[i-1][j-1] + arr[i][j];continue;
}if(j>0){
arr[i][j] = Math.min(arr[i-1][j] , arr[i-1][j-1]) + arr[i][j];
}
}
}
Arrays.sort(arr[arr.length-1]);
return arr[arr.length-1][0];
}
}
【leetcode】120. 三角形最小路径和
最新推荐文章于 2025-11-26 15:59:01 发布
该博客讨论了一个使用动态规划解决最小路径和的问题。在给定的三角形数组中,算法通过迭代更新每一层的元素,计算从顶部到底部的最小总和。关键在于比较上一行的两个相邻元素来确定当前元素的最小值。最终,返回数组的最后一个元素作为最小路径和。
1085

被折叠的 条评论
为什么被折叠?



