LeetCode #120. Triangle
题目
解题方法
典型的动态规划问题,逐行累加取最小值即可。需要注意的是第一行和每一行的首尾需要单独处理。
代码
class Solution:
def minimumTotal(self, triangle: List[List[int]]) -> int:
if len(triangle) == 1:
return triangle[0][0]
for i in range(1, len(triangle)):
for j in range(len(triangle[i])):
if not j:
triangle[i][j] += triangle[i-1][j]
elif j == i:
triangle[i][j] += triangle[i-1][j-1]
else:
triangle[i][j] += min(triangle[i-1][j], triangle[i-1][j-1])
return min(triangle[-1])

浙公网安备 33010602011771号