[leetcode DP]120. Triangle

时间:2023-03-09 00:19:49
[leetcode DP]120. Triangle

Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbers on the row below.

For example, given the following triangle

[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
]

The minimum path sum from top to bottom is 11 (i.e., 2 + 3 + 5 + 1 = 11).

从下到上,求每一层每个位置可能的最小的数,套步骤:1,确定最优子问题,2,确定重叠的子问题,3,备忘

 class Solution(object):
def minimumTotal(self, triangle):
for i in range(len(triangle)-2,-1,-1):
for j in range(0,len(triangle[i])):
triangle[i][j] += min(triangle[i+1][j],triangle[i+1][j+1])
return triangle[0][0]