力扣刷题总结之120.三角形最小路径和

​​​​​​

相关标签

力扣刷题总结之120.三角形最小路径和


 

一、题目要求 

力扣刷题总结之120.三角形最小路径和

二、题解和代码实现

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];
    }

}


 

总结

自顶向下 改为自底向上递推,可以减少对边界值的判断

力扣刷题总结之120.三角形最小路径和

上一篇:Leetcode动态规划笔记1 三角形最小路径和


下一篇:976. Largest Perimeter Triangle(三角形的最大周长)———附带思路和完整代码