我犯了一个程序用于查找一个三角形路径具有最大总和为三角形
实施例的所有可能的路径中的最大总和:
1
2 1
1 2 3
然后所有可能路径之中的最大值为1+ 2 + 3 = 6
我的代码:
def maxSum(tri, n):
if n > 1:
tri[1][1] = tri[1][1]+tri[0][0]
tri[1][0] = tri[1][0]+tri[0][0]
for i in range(2, n):
tri[i][0] = tri[i][0] + tri[i-1][0]
tri[i][i] = tri[i][i] + tri[i-1][i-1]
for j in range(1, i):
if tri[i][j]+tri[i-1][j-1] >= tri[i][j]+tri[i-1][j]:
tri[i][j] = tri[i][j] + tri[i-1][j-1]
else:
tri[i][j] = tri[i][j]+tri[i-1][j]
print max(tri[n-1])
#my list containing the triangle
tri = [[1], [2,1], [1,2,3]]
maxSum(tri, 3)
但我的代码打印输出5.Anyone请帮助我纠正我的代码?
请准确定义“路径”是什么 –
您没有告诉我们什么定义了可能的路径。 –
@Varun Shaandhesh:如果它解决了你的问题,请按照https://stackoverflow.com/help/someone-answers更新线程 –