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]; }

浙公网安备 33010602011771号