Appearance
120. 三角形最小路径和
题目描述
给定一个三角形 triangle ,找出自顶向下的最小路径和。
每一步只能移动到下一行中相邻的结点上。**相邻的结点 **在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。
示例 1:
**输入:**triangle = [[2],[3,4],[6,5,7],[4,1,8,3]] **输出:**11 **解释:**如下面简图所示: 23 4 6 5 7 4 1 8 3 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。
示例 2:
**输入:**triangle = [[-10]] 输出:-10
提示:
1
- `triangle[0].length == 1`
- `triangle[i].length == triangle[i - 1].length + 1`
-104 4
进阶:
- 你可以只使用 `O(n)` 的额外空间(`n` 为三角形的总行数)来解决这个问题吗?
难度: Medium
题解代码
javascript
/**
* @param {number[][]} triangle
* @return {number}
*/
const minimumTotal = triangle => {
const len = triangle.length - 1
const temp = triangle[len]
for (let i = len - 1; i >= 0; i--) {
for (let j = 0; j < triangle[i].length; j++) {
temp[j] = triangle[i][j] + Math.min(temp[j], temp[j + 1])
}
}
return temp[0]
}