120. 三角形最小路径和

题目链接:https://leetcode-cn.com/problems/triangle/

  1. dp方程法:
  • dp[i][j]状态定义:从底部到 triangle[i][j] 的路径的最小值
  • dp[i][j]转移方程式:dp[i][j] = triangle[i][j] + min(dp[i+1][j], dp[i+1][j+1])
  • 定义初始化的值:dp[maxRow][j] = triangle[maxRow][j]

代码:

var minimumTotal = function(triangle) {
    let maxRow = triangle.length;
    //  创造一个dp二维数组,用深拷贝
    let dp = JSON.parse(JSON.stringify(triangle));
    // 递推方程,从底部向上遍历。
    for(let i = maxRow - 2; i>=0; i--) {
        for(let j = 0; j < triangle[i].length; j++) {
            dp[i][j] = triangle[i][j] + Math.min(dp[i+1][j], dp[i+1][j+1]);
        }
    }
    return dp[0][0];
};

你可能感兴趣的:(120. 三角形最小路径和)