LeetCode #120. Triangle

题目

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])
posted @ 2020-10-21 16:09  老鼠司令  阅读(63)  评论(0)    收藏  举报