0
点赞
收藏
分享

微信扫一扫

python 练习题 70. 爬楼梯

静鸡鸡的JC 2022-08-11 阅读 44

 

地址:https://leetcode-cn.com/problems/climbing-stairs/

 

 

1 '''
2 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
3
4 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
5
6
7
8 示例 1:
9
10 输入:n = 2
11 输出:2
12 解释:有两种方法可以爬到楼顶。
13 1. 1 阶 + 1 阶
14 2. 2 阶
15 示例 2:
16
17 输入:n = 3
18 输出:3
19 解释:有三种方法可以爬到楼顶。
20 1. 1 阶 + 1 阶 + 1 阶
21 2. 1 阶 + 2 阶
22 3. 2 阶 + 1 阶
23
24
25 提示:
26
27 1 <= n <= 45
28 '''
29
30 '''
31 思路:
32 1.后面的值是前面的二个值相加,于是用了 第一种方法,但执行超时
33
34 2.参考例子,可以使用空列表,将前面计算的值存起来,这样就可以解出后面的值
35 '''
36
37
38 class Solution:
39 def climbStairs(self, n: int) -> int:
40 if n == 1:
41 # return 1
42 if n == 2:
43 # return 2
44 else:
45 return self.climbStairs(n-1)+self.climbStairs(n-2)
46
47
48 或
49
50 class Solution:
51 def climbStairs(self, n: int) -> int:
52 res = [0] * (n+1)
53 res[0] = res[1] =1
54 for i in range(2,n+1):
55 res[i] = res[i-1] + res[i-2]
56 return

 

举报

相关推荐

0 条评论