150 principais entrevistasMédio

Melhor momento para comprar e vender ações com resfriamento

Guia detalhado e implementação de Python para o problema 'Melhor momento para comprar e vender ações com resfriamento'.

Declaração do problema

Médio

Você recebe uma matriz de preços onde os preços[i] são o preço de uma determinada ação no i-ésimo dia.

Encontre o lucro máximo que você pode alcançar. Você pode concluir quantas transações desejar (ou seja, comprar uma e vender uma ação várias vezes) com as seguintes restrições:

- Depois de vender suas ações, você não poderá comprar ações no dia seguinte (ou seja, um dia de espera).

Observação: você não pode participar de diversas transações simultaneamente (ou seja, você deve vender as ações antes de comprá-las novamente).

Escreva uma função maxProfit(prices: List[int]) -> int.

Restrições
  • 1 <= len(prices) <= 5000
  • 0 <= prices[i] <= 1000

Exemplos

Example 1
Input
prices = [1,2,3,0,2]
Output
3
Explanation

Transactions = [buy, sell, cooldown, buy, sell].

Example 2
Input
prices = [1]
Output
0
Explanation

No transaction can be made.

Need a Hint?
Considere o uso de estruturas de dados 2D específicas de DP, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir no Editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.