如何在列表中的子列表中高效地显示文本?(Python)



我写了一些代码来计算三角形的最大路径和。这是三角形:

75
95 64
17 47 82
18 35 87 10
20 04 82 47 65

所以这个三角形的最大路径和是:75+95+82+87+82 = 418

这是我计算它的代码:

lst = [[72], 
[95,64], 
[17,47,82], 
[18,35,87,10],
[20,4,82,47,65]]
something = 1
i = 0
mid = 0
while something != 0:
for x in lst:
new = max(lst[i])
print(new)
i += 1
mid += new
something = 0
print(mid)

正如你所看到的,我把三角形的每一项都放在列表中,并把列表放在(头(列表中。这不是很多数字,但如果我有一个更大的三角形呢?手动操作是一项艰巨的工作。所以我的问题是:如何将三角形中的数字高效地放在头列表中的子列表中

如果输入以包含三角形中行数的一行开始,然后是该行上的所有数字,则读取第一个数字以获得range()中的限制。然后使用列表理解来创建子列表列表。

rows = int(input())
lst = [list(map(int, input().split())) for _ in range(rows)]

例如,要读取示例三角形,输入为:

5
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65

最新更新