Menu
CoddyTech

Best Time to Buy and Sell Stock

FácilGulosopython iconjava iconcpp iconc iconjs icon+10

Você recebe uma lista prices, em que prices[i] é o preço de uma ação no dia i. Você pode comprar uma ação em um dia e vendê-la em um dia posterior. Retorne o maior lucro que você pode obter ou 0 quando todas as negociações possíveis resultarem em prejuízo.

Função

maxProfit(prices: integer-array) → integer
pricesinteger-array
o preço da ação em cada dia, em ordem
Retornainteger
o maior lucro obtido com uma compra e uma venda posterior, ou 0

Restrições

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Você faz no máximo uma operação e vende em um dia posterior ao dia em que compra.

Exemplos

Entrada
prices = [7, 2, 5, 9, 1, 4]
Saída
7
Explicação
Compre no dia 1 por 2 e venda no dia 3 por 9, obtendo um lucro de 7. O preço mais baixo, 1 no dia 4, ocorre depois do 9, então a melhor venda depois dele rende apenas 3.
challenge icon

Para ir além

E se você pudesse fazer quantas negociações quisesse, mantendo no máximo uma ação por vez?

Redefinir código
def maxProfit(prices):
    # Escreva o código aqui

Teste #1

Teste #2

Argumento

prices = [7, 2, 5, 9, 1, 4]

Saída Esperada

7