class Solution:
"""
@param triangle: a list of lists of integers.
@return: An integer, minimum path sum.
"""
def minimumTotal(self, triangle):
# write your code here
if len(triangle) == 0:
return 0
if len(triangle) == 1:
return triangle[0][0]
result = []
result.append(triangle[0])
temp = []
for i in range(1, len(triangle)):
for j in range(len(triangle[i])):
if j == 0:
temp.append(triangle[i][j]+result[i-1][j])
continue
if j == len(triangle[i])-1:
temp.append(triangle[i][j]+result[i-1][j-1])
continue
temp.append(triangle[i][j]+min(result[i-1][j-1], result[i-1][j]))
result.append(temp)
temp = []
return min(result[-1])