leetcode爬楼梯

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
 

提示:

1 <= n <= 45

动态规划问题

class Solution(object):
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        if n==0:
            return 0
        q=0
        p=0
        res=1
        i=0
        while i<n:
            p=q
            q=res
            res=p+q
            i+=1
        return res

chatgpt生成代码解释:

这段 Python 代码是一个名为 Solution 的类,其中定义了一个 climbStairs 方法,该方法接受一个整数 n 作为输入参数,返回一个整数,表示到第 n 级台阶有多少种不同的方式可以爬楼梯。

该方法的实现方式为:首先判断如果 n 等于 0,则直接返回 0(因为在这种情况下无法进行任何爬楼操作)。否则,我们使用三个变量 q、p 和 res 来计算到第 n 级台阶时的爬楼方式数量。变量 p、q 和 res 初始值分别为 0、0 和 1。然后利用 while 循环进行迭代,一次计算一个级别上的爬楼动作并更新 p、q 和 res 的值,直至完成 n 次循环即得到答案。最终将计算结果 res 返回。

具体来说,在每次循环中,变量 p 存储上上次循环计算的爬楼方式数量,变量 q 存储上次循环计算的爬楼方式数量,变量 res 存储当前循环计算的爬楼方式数量,其中变量 i 表示当前循环执行的总次数。在每次循环中,我们将变量 p 值赋给变量 q、变量 q 值赋给变量 res、并将变量 p 和变量 q 相加后的值赋给变量 res,以求出下一级楼梯的爬楼方式数量。循环迭代结束后,变量 res 的值即为到第 n 级台阶时的爬楼方式数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值