題目鏈接:https://leetcode-cn.com/problems/triangle/
- dp方程法:
- dp[i][j]狀態(tài)定義:從底部到 triangle[i][j] 的路徑的最小值
- dp[i][j]轉(zhuǎn)移方程式: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;
// 創(chuàng)造一個dp二維數(shù)組届良,用深拷貝
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];
};