其他分享
首页 > 其他分享> > 309. 最佳买卖股票时机含冷冻期

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

作者:互联网

package leetcode;

public class demo_309 {
    public int maxProfit(int[] prices) {
        //前i天中,最后一个操作是买入的最大收益
        int[] buy=new int[prices.length];
        //前i天中,最后一个操作是卖出的最大收益
        int[] sell=new int[prices.length];
        //前i天中,最后一个操作是冷冻期的最大收益
        int[] cold=new int[prices.length];
        buy[0]=-prices[0];
        for (int i = 1; i < prices.length; i++) {
            //第i天要么卖出要么不卖出
            sell[i]=Math.max(buy[i-1]+prices[i], sell[i-1]);
            //第i天要么买,要么不买
            buy[i]=Math.max(cold[i-1]-prices[i],buy[i-1]);
            //根据转换公式,冷冻期最大收益和卖出去是一样的
            cold[i]=sell[i-1];
        }
        System.out.println(sell[prices.length-1]);
        return sell[prices.length-1];
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_309 demo=new demo_309();
        int[] prices= {1,2,3,0,2};
        demo.maxProfit(prices);
    }

}

 

标签:sell,309,buy,int,demo,最佳,length,prices,冷冻
来源: https://www.cnblogs.com/Yshun/p/16205834.html