Top 150 InterviewСредний

Best Time to Buy and Sell Stock with Cooldown

Detailed guide and Python implementation for the 'Best Time to Buy and Sell Stock with Cooldown' problem.

Постановка задачи

Средний

You are given an array prices where prices[i] is the price of a given stock on the ith day.

Find the maximum profit you can achieve. You may complete as many transactions as you like (i.e., buy one and sell one share of the stock multiple times) with the following restrictions:

- After you sell your stock, you cannot buy stock on the next day (i.e., cooldown one day).

Note: You may not engage in multiple transactions simultaneously (i.e., you must sell the stock before you buy again).

Write a function maxProfit(prices: List[int]) -> int.

Ограничения
  • 1 <= len(prices) <= 5000
  • 0 <= prices[i] <= 1000

Примеры

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?
Consider using 2D DP-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Готовы решить?

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

Открыть в редакторе
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

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.

Учебник по Python

Python Try/Except и обработка ошибок

Предотвратите сбой ваших скриптов Python. Узнайте, как блокировать try, кроме, наконец, и как правильно создавать пользовательские исключения.

Посмотреть ресурс
Практическое руководство

Как преобразовать строку в Int в Python

Узнайте, как преобразовать строку в целое число в Python с помощью функции int(). Безопасно обрабатывайте ошибки и преобразуйте числа из двоичного, восьмеричного или шестнадцатеричного формата.

Посмотреть ресурс
Шпаргалка

Шпаргалка по форматированию DateTime в Python

Узнайте, как анализировать и форматировать дату и время в Python, используя datetime, strftime и strptime.

Посмотреть ресурс
Сравнение языков

Декораторы Python и шаблоны проектирования декораторов: ключевые различия

Сравните декораторы Python и классический шаблон проектирования декораторов. Поймите разницу между переносом функций во время определения и динамической композицией объектов во время выполнения с помощью исполняемого кода.

Посмотреть ресурс