Triangle

这题主要是空间优化后的循环需要注意一下

class Solution(object):
    def minimumTotal(self, triangle):
        """
        :type triangle: List[List[int]]
        :rtype: int
        """
        n = len(triangle)
        dp = [0] * n
        dp[0] = triangle[0][0]

        for i in xrange(1, n):
            for j in xrange(i, -1, -1):
                if 0 < j < i:
                    dp[j] = min(dp[j - 1], dp[j]) + triangle[i][j]
                elif j == 0:
                    dp[j] += triangle[i][j]
                else:
                    dp[j] = dp[j - 1] + triangle[i][j]
        return min(dp)

results matching ""

    No results matching ""