70. 爬楼梯

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

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

注意:给定 n 是一个正整数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
示例 1

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。

1. 1 阶 + 1
2. 2
示例 2

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。

1. 1 阶 + 1 阶 + 1
2. 1 阶 + 2
3. 2 阶 + 1


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:sarizzm time:2021/1/6 0006

class Solution:
def climbStairs(self, n):
# if n == 0:
# return 0
# if n == 1:
# return 1
# if n == 2:
# return 2
# steps = self.climbStairs(n-1)+self.climbStairs(n-2)
# left = 0 # 超时
right = 0
result = 1
for i in range(n):
left = right
right = result
result = left+right


return result

print(Solution().climbStairs(38))