1、暴力递归
超时
class Solution:
def climbStairs(self, n: int) -> int:
# 递归
if n<=3:
return n
else:
return self.climbStairs(n-1)+self.climbStairs(n-2)
2、循环 从上一个解法不难看出 f(n) = f(n-1) +f(n-2)
class Solution:
def climbStairs(self, n: int) -> int:
dp=[0,1,2]
for i in range(3, n+1):
dp.append(dp[i-1] + dp[i-2])
return dp[n]