leetcode 309. 最佳买卖股票时机含冷冻期

image

class Solution {
    public int maxProfit(int[] prices) {
        int len=prices.length;
        // 0: no stock; 1: hold stock; 2: no stock & in frozen stage
        int[] dp=new int[3];
        dp[1]=-prices[0];
        for(int i=1;i<len;i++){
            int d0=Math.max(dp[0],dp[2]);
            int d1=Math.max(dp[1],dp[0]-prices[i]);
            int d2=dp[1]+prices[i];
            dp[0]=d0;
            dp[1]=d1;
            dp[2]=d2;
        }
        return Math.max(dp[0],dp[2]);
    }
}
posted @ 2022-03-27 15:51  livingsu  阅读(32)  评论(0)    收藏  举报