Leetcode练习(Python):数组类:第120题:给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。说明: 如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。

题目:
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。说明:  如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。
思路:
要从下到上进行设计,从上到下进行设计会有错误。
程序:
class Solution:
    def minimumTotal(self, triangle: List[List[int]]) -> int:
        row = len(triangle)
        if row <= 0:
            return 0
        result = triangle[-1]
        for index1 in range(row - 2, -1, -1):
            for index2 in range(index1 + 1):
                result[index2] = min(result[index2], result[index2 + 1]) + triangle[index1][index2]
        return result[0]
                

猜你喜欢

转载自www.cnblogs.com/zhuozige/p/12751095.html