Subir escaleras---Hebilla ligera

1 pregunta

Supongamos que estás subiendo escaleras. Se necesitan n pasos para llegar a la cima del edificio.

Puedes subir 1 o 2 escalones a la vez. ¿De cuántas maneras diferentes puedes subir a la cima de un edificio?

Nota: Dado n es un número entero positivo.

Ejemplo 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1+ 12.  2

Ejemplo 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1+ 1+ 11+ 22+ 1

2 respuestas

Descomponga el problema en subestructuras y utilice programación dinámica para resolverlo. Definiendo dp [i] significa que hay varias formas de subir el escalón i. Podemos obtener la ecuación de estado dp [i] = dp [i - 1] + dp [i - 2], que significa subir un escalón. y subir dos escalones en el tiempo anterior Suma del método a i.

func climbStairs(n int) int {
    
    
    if n == 1 || n == 2 {
    
    
        return n
    }
    var s [1005]int
    s[1] = 1
    s[2] = 2
    for i := 3; i <= n; i++ {
    
    
        s[i] = s[i - 1] + s[i - 2]
    }
    return s[n]
}

3Enlaces relacionados

Fuente: LeetCode
Enlaces: https://leetcode-cn.com/problems/climbing-stairs
https://blog.csdn.net/myz123321/article/details/90726358

Supongo que te gusta

Origin blog.csdn.net/weixin_42375493/article/details/122045379
Recomendado
Clasificación