LeetCode 70. Subir escaleras [Python]

problema

Suponga que está subiendo escaleras. Se necesitan n pasos para llegar a la parte superior del edificio.
Puedes subir 1 o 2 escalones cada vez. ¿De cuántas formas diferentes tienes para subir a la cima de un edificio?

Ejemplo 1:

Entrada: 2
Salida: 2
Explicación: Hay dos formas de subir a la parte superior del edificio. (1er orden + 1er orden), (2do orden)

Ejemplo 2:

Entrada: 3
Salida: 3
Explicación: Hay tres formas de subir a la parte superior del edificio. (1er orden + 1er orden + 1er orden), (1er orden + 2do orden), (2do orden + 1er orden)

Ideas

Usa la secuencia de Fibonacci para resolver.

(1) Primero, debemos enumerar dos escaleras excepcionales, n = 1 y n = 2.
(2) Cuando n ≥3, el método para subir escaleras para la escalera n consta de dos partes. La primera parte está en n- Sube un escalón en la escalera del 1 y sube dos escalones en la escalera del n-2 en la segunda parte. Entonces dp [n] = dp [n-1] + dp [n-2].

Código

class classname(object):
    def __init__(self):
        pass

    def climbStairs(self, n):
        if n == 1:
            return 1
        if n == 2:
            return 2
        first = 1; second = 2
        for i in range(n-2):
            temp = second
            second = first + second
            first = temp
        return second

if __name__ == '__main__':
    s = classname()
    r = s.climbStairs(35)
    print(r)
información relacionada

Enlace de aprendizaje: https://wenku.baidu.com/view/d680efcacd22bcd126fff705cc17552707225efe.htmls

Supongo que te gusta

Origin blog.csdn.net/qq_41709378/article/details/106744615
Recomendado
Clasificación