[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonpeixun/LeetCode-Solutions/master/Python/triangle.py [Back]  [Original]

from functools import reduce
# Time:  O(m * n)
# Space: O(n)

class Solution(object):
    # @param triangle, a list of lists of integers
    # @return an integer
    def minimumTotal(self, triangle):
        if not triangle:
            return 0

        cur = triangle[0] + [float("inf")]
        for i in xrange(1, len(triangle)):
            next = []
            next.append(triangle[i][0] + cur[0])
            for j in xrange(1, i + 1):
                next.append(triangle[i][j] + min(cur[j - 1], cur[j]))
            cur = next + [float("inf")]

        return reduce(min, cur)


Web Proxy Viewer  |  New URL  |  Original Page