120. Triangle 三角形的最短路径
程序员文章站
2022-04-01 16:53:43
...
- 从下往上遍历,辅助数组的元素表示从最底层开始到达该结点的最短路径。
- 第level层的下标从0到level
- 第[level,i]往下相邻的相邻的结点为[level+1][i]和[level+1][i+1]
def minimumTotal(self, triangle):
"""
:type triangle: List[List[int]]
:rtype: int
"""
if not triangle:
return 0
m = len(triangle)
# 辅助数组的元素表示从最底层往上,到达该点所需的最小sum
res = triangle
# 最后一层不需要计算,等于原数组本身,从m-2开始
for level in range(m-2, -1, -1):
for i in range(level + 1): #第level层的下标从0到level
res[level][i] = min(res[level+1][i], res[level+1][i+1]) + triangle[level][i]
return res[0][0]
上一篇: bLue的平行四边形
下一篇: 【dp刷题】三角形最短路径和-120