美文网首页
309. 最佳买卖股票时机含冷冻期

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

作者: bangbang2 | 来源:发表于2020-08-14 08:48 被阅读0次
    image.png

    动态规划,主要来看下面的那张图,主要涉及到的是状态的转换
    dp[i][0]代表卖出,dp[i][0]=MAX(dp[i-1][1]+prices[i],dp[i-1][0])
    dp[i][1]代表买入,要么不动,要么是从冷冻期转换来的,初始值为-prices[0],因为买东西要花钱呀
    dp[i][2]代表冷冻期,只能由卖出这个状态转移过来


    image.png
    class Solution {
        public int maxProfit(int[] prices) {
          int [][] dp=new int[prices.length][3];
          int n=prices.length;
          if(n<2) return 0; 
          dp[0][1]=-prices[0];
          for(int i=1;i<n;i++){
            dp[i][0]=Math.max(dp[i-1][1]+prices[i],dp[i-1][0]);
            dp[i][1]=Math.max(dp[i-1][1],dp[i-1][2]-prices[i]);
            dp[i][2]=dp[i-1][0];
                  }
            int res=Math.max(dp[n-1][0],dp[n-1][1]);
             res=Math.max(res,dp[n-1][2]);
            return res;
              }
    }
    

    相关文章

      网友评论

          本文标题:309. 最佳买卖股票时机含冷冻期

          本文链接:https://www.haomeiwen.com/subject/xwgjdktx.html