python 练习题 70. 爬楼梯

 

地址: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 res[-1]  

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2022-05-02 19:08  菜小鱼~  阅读(208)  评论(0编辑  收藏  举报