120. 三角形最小路径和
https://leetcode-cn.com/problems/triangle/
解法一:dp
用一个一维dp数组,自底向上迭代即可。dp初始为三角形倒数第一行,从倒数第二行开始迭代。dp[j]
的新值为相邻位置较小值加上当前位置三角形的值
class Solution:
def minimumTotal(self, triangle: List[List[int]]) -> int:
dp = triangle[-1]
for i in range(len(triangle)-2, -1, -1): #自底向上,对三角形的每行
for j in range(len(triangle[i])): #从左到右,对三角形该行的每个位置
dp[j] = min(dp[j], dp[j+1]) + triangle[i][j]
return dp[0]
最后更新于