LeetCode 714 买卖股票的最佳时机含手续费 + 309 最佳买卖股票时机含冷冻期

    科技2022-08-17  105

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

    class Solution { public int maxProfit(int[] prices, int fee) { if(prices.length==0) return 0; int dp_i_0=0,dp_i_1=Integer.MIN_VALUE,temp; for(int i=0;i<prices.length;i++){ temp=dp_i_0; dp_i_0=Math.max(dp_i_0,dp_i_1+prices[i]); dp_i_1=Math.max(dp_i_1,temp-prices[i]-fee); } return dp_i_0; } }

    这个动态方程直接从

    LeetCode 122 买卖股票的最佳时机||

    这里搬的,减个fee就好了,至于另一种,还没想出来,主要加了fee,就不太一样了

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

    class Solution { public int maxProfit(int[] prices) { if(prices.length==0) return 0; int dp_i_0=0,dp_i_1=Integer.MIN_VALUE,temp,dp_i_0_pre=0; for(int i=0;i<prices.length;i++){ temp=dp_i_0; dp_i_0=Math.max(dp_i_0,dp_i_1+prices[i]); dp_i_1=Math.max(dp_i_1,dp_i_0_pre-prices[i]); dp_i_0_pre=temp; } return dp_i_0; } }

    这个动态方程还是直接从

    LeetCode 122 买卖股票的最佳时机||

    这里搬的,动态方程需要做改变

    dp[i][0] = max(dp[i-1][0], dp[i-1][1] + prices[i]) dp[i][1] = max(dp[i-1][1], dp[i-2][0] - prices[i])

    这里是dp[i-2][0]

    题解这个大神写的题解真的救了我这6个题

    Processed: 0.013, SQL: 9