Java LeetCode 309.株式を売買するのに最適な時期には、凍結期間が含まれます

整数配列が与えられると、i番目の要素はi番目の日の株価を表します。
最大利益を計算するアルゴリズムを設計します。次の制約の下で、できるだけ多くのトランザクションを完了することができます(株式を複数回売買する):
同時に複数のトランザクションに参加することはできません(再度購入する前に前の株式を売却する必要があります)。
株式を売却した後は、翌日には購入できません(つまり、凍結期間は1日です)。
例:
入力:[1,2,3,0,2]
出力:3
説明:対応するトランザクションステータスは次のとおりです:[購入、販売、凍結期間、購入、販売]

class Solution {
    
    
    public int maxProfit(int[] prices) {
    
    
        if(prices.length==0||prices==null){
    
    
            return 0;
        }
        int pr_0=0;
        int pr_1=Integer.MIN_VALUE;
        int pr_2_0=0;
        for(int i=0;i<prices.length;i++){
    
    
            int temp = pr_0;
            pr_0=Math.max(pr_0,pr_1+prices[i]);
            pr_1=Math.max(pr_1,pr_2_0-prices[i]);
            pr_2_0=temp;
        }

        return pr_0;
    }
}

おすすめ

転載: blog.csdn.net/sakura_wmh/article/details/111601549