Стоимость облигации на каждый день приведена по ценам массива of n , и мне нужно найти максимальную прибыль, которую я могу получить, покупая и продавая в
ровно k транзакции (покупка и продажа, в этом порядке. Не в тот же день. Но я могу продавать, а затем купить в тот же день). (Python): < /p>
Код: Выделить всё
prices = [3, 1, 10]
n = len(prices)
def aux(i, j):
if j == n - 1 or i == 0:
return 0
s = [(prices[j + t] - prices[j]) + aux(i - 1, j + t)
for t in range(1, n - j)]
return max(aux(i, j + 1), max(s)) if s else aux(i, j + 1)
def max_profit(k):
return aux(k, 0)
Но для данного массива в коде и с k = 2 я получаю 9 , когда это должно быть (1 - 3) + (10 - 1) = 7 . Кажется, он получает максимальную прибыль для большинства k транзакций и не совсем K. < /P>
Как это может быть исправлено? < /P>
Подробнее здесь:
https://stackoverflow.com/questions/446 ... ly-k-times