class Solution {
  public int maxProfit(int[] prices) {
    int sell = 0;
    int hold = Integer.MIN_VALUE;
    int prev = 0;
    for (final int price : prices) {
      final int cache = sell;
      sell = Math.max(sell, hold + price);
      hold = Math.max(hold, prev - price);
      prev = cache;
    }
    return sell;
  }
}
leetcode
challenge
Here is the link for the problem:
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
    
Top comments (0)