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