大一老牲,被蓝桥杯打废了~
记录一下吧,强制每天写一篇,总结也是督促^_^_
为了省事直接都写到代码里了
从屎山里爬出来!!!
希望大家都来,相互督促
11111111:请大佬帮忙改进,蟹蟹!
#首先还是读取
r = int(input())
pyramid = []
for i in range(r):
row = list(map(int,input().split()))
pyramid.append(row)
eg.
3
1
1 2
1 2 3
>>> pyramid
[[1], [1, 2], [1, 2, 3]]
#下一步就直接进行初始化数组
dp = [[0] * len(row) for row in pyramid]
#下一步怎么办呢 ———> 从下往上逐加,即整个数组每个点显示到该点的最大值
———> 这就需要先有最后一行
dp[-1] = pyramid[-1]
#下面直接进行计算即可(从倒数第二行)
for i in range(r - 2, -1, -1):
for j in range(len(pyramid[i])):
dp[i][j] = pyramid[i][j] + max(dp[i + 1][j], dp[i + 1][j + 1])
print(dp[0][0])
本次用时:约1小时(第一次,不熟练)