美文网首页
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