[Python] Maximum profit by buying and selling a share exactly k times

Discussão em 'Python' iniciado por Stack, Junho 23, 2025.

  1. Stack

    Stack Membro Participativo

    The cost of a bond on each day is given in array prices of length n, and I need to find the maximum profit that I can make by buying and selling in exactly k transactions (buying and selling, in that order. not in the same day. but I can sell and then buy in the same day).

    I tried (Python):

    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)


    But for the given array in the code, and with k=2 I get 9 when It should be (1 - 3) + (10 - 1) = 7. It seem to get the maximum profit for at most k transactions and not exactly k.

    How can it be fixed?

    Continue reading...

Compartilhe esta Página