leetcode 买卖股票的最佳时机 III

 

 

这是道hard题,但只要掌握了股票问题动态规划的大致思路,很容易就能写出初始条件,以及三重dp的状态转移方程,具体可见算法思想中的股票问题。https://www.cnblogs.com/xxsdbk/p/15174494.html

最后贴个代码:

    public int maxProfit(int[] prices) {
        int k=2;
        int [][][] dp=new int[prices.length+1][k+1][2];
        for(int i=0;i<=k;i++)
        {
            dp[0][i][0]=0;
            dp[0][i][1]=Integer.MIN_VALUE;
        }

        for(int i=1;i<prices.length+1;i++)
            for(int j=1;j<=k;j++)
        {
            dp[i][j][0]=Math.max(dp[i-1][j][0],dp[i-1][j][1]+prices[i-1]);
            dp[i][j][1]=Math.max(dp[i-1][j][1],dp[i-1][j-1][0]-prices[i-1]);

        }
        return dp[prices.length][2][0];
    }

 

posted @ 2021-08-23 09:37  毅毅毅毅毅  阅读(40)  评论(0)    收藏  举报