accumulate原先是用來計算累加的工具,但更改func參數為max,就可以儲存"歷史最高"的資訊
官方的範例:(跟functools.reduce很像,但每個計算後的值都會保留下來,而不會直接坍縮到scalar)
# accumulate([1,2,3,4,5]) --> 1 3 6 10 15 # accumulate([1,2,3,4,5], initial=100) --> 100 101 103 106 110 115 # accumulate([1,2,3,4,5], operator.mul) --> 1 2 6 24 120
製作歷史新高:
https://docs.python.org/3/library/functools.html#functools.reduce
https://docs.python.org/3/library/itertools.html#itertools.accumulate
有了歷史新高,只要max("在j時刻以前的歷史新高 x[j] "-"序列 a[j] ")就可以得到想要的結果