リストのリストにレベルごとに格納されている知識のベースから達成できる最大の利益を計算して返す関数を作成する必要があります。
この機能をテストするためのメインは次のとおりです。
if __name__ == "__main__":
l0 = [[7], [3,8], [8,1,0], [2,7,4,4], [4,5,2,6,5]]
l1 = [[11], [7,32], [14,14,14], [0,1,2,3], [5,99,1,2,7],
[0,25,9,45, 54,1], [99,88,77,66,55,44,33]]
>>>30
>>>270
私は下から上に始めようとしましたが、他の解決策はありますか?
リストはツリーのように想像できます
[7]
[3,8]
[8,1,0]
[2,7,4,4]
などなど...最大のメリットがあるウォークに到達したい、選択肢の重みはリストの数字で与えられる、パスを最大化する必要がある
私はこの解決策を書きました
def maxpath(listN):
liv = len(listN) -1
return calcl(listN,liv)
def calcl(listN,liv):
if liv == 0:
return listN[0]
listN[liv-1] = [(listN[liv-1][i]+listN[liv][i+1],listN[liv-1][i]+listN[liv][i]) \
[ listN[liv][i] > listN[liv][i+1] ] for i in range(0,liv)]
return calcl(listN,liv-1)
print(maxpath(l0))
print(maxpath(l1))
#output
[30]
[270]