class Solution(object):
def minimumTotal(self, triangle):
"""
:type triangle: List[List[int]]
:rtype: int
"""
if len(triangle)==0:
return 0
res=[ None for x in range(len(triangle[-1])) ]
for i in range(len(triangle)):
for j in range(len(triangle[i])-1,-1,-1):
if i==0:
res[j]=triangle[i][j]
elif j==0:
res[j]=triangle[i][j]+res[j]
elif j==len(triangle[i])-1:
res[j]=triangle[i][j]+res[j-1]
else:
res[j]=triangle[i][j]+min(res[j],res[j-1])
pass
return min(res)
# print Solution().minimumTotal([
# [2],
# [3,4],
# [6,5,7],
# [4,1,8,3]
# ])