minCostClimbingStairs- Subir escaleras con costo mínimo

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

Supongo que te gusta

Origin blog.csdn.net/tangshuai96/article/details/111468101
Recomendado
Clasificación