Tencent 45-subir escaleras
Supongamos que estás subiendo escaleras. Toma 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 del edificio?
Nota: El n dado es un entero positivo.
Ejemplo 1:
Entrada: 2
Salida: 2
Explicación: Hay dos formas de subir a la cima del edificio.
- Nivel 1 + Nivel 1
- Nivel 2
Ejemplo 2
Entrada: 3
Salida: 3
Explicación: Hay tres formas de subir a la cima del edificio.
- 1er orden + 1er orden + 1er orden
- 1er orden + 2do orden
- Nivel 2 + Nivel 1
La recursión convencional, que también se puede decir que es dp, puede
usar una lista o diccionario para almacenar el resultado del cálculo anterior. El
parámetro de entrada actual puede usar el resultado del parámetro de entrada anterior, que es dp
class Solution:
def climbStairs(self, n: int) -> int:
# if n==0 or n==1:return 1
# else: return self.climbStairs(n-1)+self.climbStairs(n-2)
#不能写递归,太深,只能写循环
res={0:1,1:1}
for i in range(2,n+1):
res.update({i:res[i-1]+res[i-2]})
return res[n]