Triangle
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
] if not triangle:
return memo = [None] * len(triangle)
n = len(triangle) - 1
Last updated
[
[2],
[3,4],
[6,5,7],
[4,1,8,3]
] if not triangle:
return memo = [None] * len(triangle)
n = len(triangle) - 1
Last updated
for i in range(len(A) - 2, -1,-1): for i in range(len(triangle) - 2, -1, -1):
for j in range(len(triangle[i])):
memo[j] = triangle[i][j] + min(memo[j], memo[j + 1])class Solution:
def minimumTotal(self, triangle):
if not triangle:
return
memo = [None] * len(triangle)
n = len(triangle) - 1
# bottom row
for i in range(len(triangle[n])):
memo[i] = triangle[n][i]
for i in range(len(triangle) - 2, -1, -1):
for j in range(len(triangle[i])):
memo[j] = triangle[i][j] + min(memo[j], memo[j + 1])
return memo[0]