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 リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。