Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Estás subiendo una escalera. norte
pasos para llegar a la cima.
Cada vez que puedas escalar 1
o 2
escalones. ¿De cuántas maneras distintas puedes subir hasta la cima?
Ejemplo 1:
Aporte: norte=2 Producción: 2 Explicación: Hay dos formas de subir a la cima 1. 1 escalón + 1 escalón 2. 2 escalones.
Ejemplo 2:
Aporte: norte=3 Producción: 3 Explicación: Hay tres formas de subir a la cima 1. 1 escalón + 1 escalón + 1 escalón 2. 1 escalón + 2 escalones 3. 2 escalones + 1 escalón.
Restricciones:
1 <= norte <= 45
Pitón
clase Solución: # complejidad del tiempo: O(n) # complejidad del espacio: O(n) # Cashe con fuerza bruta # def subirEscaleras(self, n: int) -> int: # memo = [0] * (n+1) # return self.climb_Stairs(0, n, memo) # complejidad del tiempo: O(n) # complejidad del espacio: O(n) # def rise_Stairs(self, i: int, n: int, memo: list) -> int: # si (i > n): # devuelve 0 # si (i == n): # devuelve 1 # si (memo[i]): # devuelve memo[i] # memo[i] = self.climb_Stairs(i+ 1 , n, memo) + \ # self.climb_Stairs(i+2, n, memo) # return memo[i] # complejidad del tiempo: O(n) # complejidad del espacio: O(b) # Programación dinámica # defclimbStairs( self , n: int): # si n == 1: # devuelve 1 # dp = [0] * (n + 1) # dp[1] = 1 # dp[2] = 2 # para i en rango(3, n+1): # dp[i] = dp[i-1] + dp[i-2] # return dp[n] # complejidad temporal: O(n) # complejidad espacial: O(1) # Número de Fibonacci def subirEscaleras(self, n: int) -> int: si n == 1: devuelve 1 primero = 1 segundo = 2 tercero = 0 para i en el rango(3, n+1): tercero = primero + segundo primero = segundo segundo = tercer retorno segundo n = 50 print(Solution().climbStairs(50))