题目表述(来源LeetCode)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

代码实现

1
2
3
4
5
6
7
8
class Solution:
def climbStairs(self, n: int) -> int:
a = [0,1,2]
i=3
if n>2:
for i in range(3,n+1):
a.append(a[i-1]+a[i-2])
return a[n]

复杂度分析

  • 时间复杂度:O(n)O(n)
  • 空间复杂度:O(n)O(n)