【代码随想录训练营】【Day51】第九章|动态规划|买卖股票|309.最佳买卖股票时机含冷冻期|714.买卖股票的最佳时机含手续费|总结

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

题目详细:LeetCode.309

详细的题解可查阅:《代码随想录》— 最佳买卖股票时机含冷冻期

Java解法(动态规划):

class Solution {
    public int maxProfit(int[] prices) {
        int[] dp=new int[4];
        dp[0] = -prices[0];
        dp[1] = 0;
        for(int i = 1; i <= prices.length; i++){
            int temp = dp[0];
            int temp1 = dp[2];
            dp[0] = Math.max(dp[0], Math.max(dp[3], dp[1]) - prices[i-1]);
            dp[1] = Math.max(dp[1], dp[3]);
            dp[2] = temp + prices[i-1];
            dp[3] = temp1;
        }
        return Math.max(dp[3],Math.max(dp[1],dp[2]));
    }
}

买卖股票的最佳时机含手续费

题目详细:LeetCode.714

详细的题解可查阅:《代码随想录》— 买卖股票的最佳时机含手续费

Java解法(动态规划):

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

总结

详细的总结可查阅:《代码随想录》— 买卖股票问题总结

你可能感兴趣的:(代码随想录训练营,动态规划,算法,leetcode)