Implementación de Java de LeetCode 746 usando el costo mínimo para subir escaleras (recursivo)

746. Subir escaleras con un costo mínimo

Cada índice de la matriz se usa como una escalera, y la i-ésima escalera corresponde a un valor de costo físico no negativo costo i .

Cada vez que sube una escalera, tiene que gastar el costo físico correspondiente, y luego puede elegir continuar subiendo una o dos escaleras.

Debe encontrar el costo mínimo para llegar a la parte superior del piso. Al principio, puede elegir el elemento con índice 0 o 1 como la escalera inicial.

Ejemplo 1:

Entrada: costo = [10, 15, 20]
Salida: 15
Explicación: El costo mínimo es comenzar desde el costo [1], y luego tomar dos pasos para llegar a la cima de la escalera, que cuesta un total de 15.
Ejemplo 2

Entrada: costo = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
Salida: 6
Explicación: El método de costo más bajo es comenzar desde el costo [0], recorrer esos 1 uno por uno y omitir el costo [ 3], cuesta 6.
Nota:

La duración del costo será [2, 1000].
Cada costo [i] será de tipo entero con un rango de [0, 999].

class Solution {
     public int minCostClimbingStairs(int[] cost) {
        if(cost.length==2) return Math.max(cost[0],cost[1]);
        int[] dp=new int[cost.length+1];
        dp[0]=0;dp[1]=cost[0];
        for(int i=2;i<cost.length+1;i++){
            dp[i]=Math.min(dp[i-1],dp[i-2])+cost[i-1];
        }
        return Math.min(dp[cost.length],dp[cost.length-1]);
    }
}
1821 artículos originales publicados · 30,000+ elogios · 4.78 millones de visitas

Supongo que te gusta

Origin blog.csdn.net/a1439775520/article/details/105539369
Recomendado
Clasificación