Java LeetCode 309. Le meilleur moment pour acheter et vendre des actions comprend une période de gel

Étant donné un tableau d'entiers, le i-ème élément représente le cours de l'action le i-ème jour.
Concevez un algorithme pour calculer le profit maximum. Sous les contraintes suivantes, vous pouvez effectuer autant de transactions que possible (acheter et vendre une action plusieurs fois):
Vous ne pouvez pas participer à plusieurs transactions en même temps (vous devez vendre l'action précédente avant d'acheter à nouveau).
Après avoir vendu le stock, vous ne pouvez pas acheter le stock le jour suivant (c'est-à-dire que la période de gel est de 1 jour).
Exemple:
Entrée: [1,2,3,0,2]
Sortie: 3
Explication: L'état de la transaction correspondante est: [Achat, Vente, Gel de la période, Achat, Vente]

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

Je suppose que tu aimes

Origine blog.csdn.net/sakura_wmh/article/details/111601549
conseillé
Classement