Título
Cada índice de la matriz sirve como una escalera, y la i-ésima escalera corresponde a un costo de esfuerzo físico i no negativo .
Cada vez que sube una escalera, debe gastar el valor de costo físico correspondiente, y luego puede optar por seguir subiendo una escalera o subiendo dos escaleras.
Necesita encontrar el costo más bajo para llegar a la parte superior del piso. Al principio, puede elegir el elemento con índice 0 o 1 como 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 dar dos pasos para llegar a la cima de la escalera, un costo 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 menor costo es comenzar desde el costo [0], pasar por los 1 uno por uno , omita el costo [3], cuesta un total de 6.
Nota:
La duración del costo será [2, 1000].
Cada costo [i] será un tipo entero con un rango de [0, 999].
Ideas para resolver problemas
Esta pregunta es relativamente simple, solo mira el código directamente
Demostración de código
class Solution {
public int minCostClimbingStairs(int[] cost) {
int[] dp=new int[cost.length];
dp[0]=cost[0];
dp[1]=cost[1];
for (int i = 2; i < cost.length; i++) {
dp[i]=Math.min(dp[i-1],dp[i-2])+cost[i];
}
return Math.min(dp[cost.length-1],dp[cost.length-2]);
}
}
efecto
La
respuesta de información fue exitosa:
tiempo de ejecución: 1 ms, derrotando al 99.68% de los usuarios de Java
Consumo de memoria: 38.2 MB, derrotando al 67.94% de los usuarios de Java