您的位置:首页 > 编程语言 > Python开发

LeetCode 120. Triangle (Python)最优解--Apolo_Shane

2018-01-25 06:29 726 查看
#动态规划皆可用表格解决!

#1\自上往下

class Solution:
def minimumTotal(self, triangle):
m = len(triangle)
l = triangle
for i in range(1, m):
for j in range(i + 1):
if j == 0:
l[i][0] = l[i - 1][0] + l[i][0]
elif j == i:
l[i][i] = l[i - 1][i - 1] + l[i][i]
else:
l[i][j] = min(l[i - 1][j], l[i - 1][j - 1]) + l[i][j]
return min(l[m - 1][:])

2/自下往上

class Solution:
def minimumTotal(self, triangle):
f = [0] * (len(triangle) + 1)
for row in triangle[::-1]:
for i in range(len(row)):
f[i] = row[i] + min(f[i], f[i + 1])
return f[0]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: