记录小辣鸡开始学习python——第3道题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、题目 leecode-爬楼梯

题目:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

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

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

二、代码

代码如下:

class Solution:
    def climbStairs(self, n: int) -> int:
        if n<= 2:
            result = n
            return result

        result = []
        for i in range(n+1):
            result.append(0)

        #result = [0 for i in range(n+1)]

        result[1] = 1
        result[2] = 2

        for i in range(3,n+1):
            result[i] = result[i-1] + result[i-2]
        return result[-1]

2.思路

最开始没想出来,然后看了题解,画了图之后发现还是比较容易理解的。
题目中每次只能一次爬 1 或 2 个台阶,假设一共10个台阶,则我们能够跨到第10个台阶的起点可以是 “第9个台阶” 和 “第8个台阶”:从“第9个台阶跨一步或者从第8个台阶跨两步”这两种方式。因此,能够跨到第10个台阶的方式就可以看作是(能够跨到第9个台阶的方式+能够跨到第8个台阶的方式),也就是(n-1)+(n-2)。

总结

这次学会了定义空列表
result = []
for i in range(n+1):
result.append(0)。
记住了,今天又进步了一点点,明天也要加油哇!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值