Java LeetCode 309. El mejor momento para comprar y vender acciones incluye un período de congelación

Dada una matriz de enteros, el i-ésimo elemento representa el precio de las acciones en el i-ésimo día.
Diseñe un algoritmo para calcular el beneficio máximo. Bajo las siguientes restricciones, puede completar tantas transacciones como sea posible (comprar y vender una acción varias veces):
No puede participar en múltiples transacciones al mismo tiempo (debe vender la acción anterior antes de volver a comprar).
Después de vender las acciones, no puede comprarlas al día siguiente (es decir, el período de congelación es de 1 día).
Ejemplo:
Entrada: [1,2,3,0,2]
Salida: 3
Explicación: El estado de la transacción correspondiente es: [Compra, Venta, Periodo de congelación, Compra, Venta]

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

Supongo que te gusta

Origin blog.csdn.net/sakura_wmh/article/details/111601549
Recomendado
Clasificación