美文网首页
[LeetCode]70.爬楼梯

[LeetCode]70.爬楼梯

作者: 吉祥鸟hu | 来源:发表于2021-04-19 18:02 被阅读0次

    [TOC]

    题目

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

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

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

    示例 1:

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

    示例 2:

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

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

    解答

    思路:

    方法:动态规划

    如果有n
    如果最后一步是1阶台阶:那就是取前n-1台阶的 所需要的方法
    如果最后一步是2阶台阶:那就是取前n-2台阶的 所需要的方法

    如果有n-1
    如果最后一步是1阶台阶:那就是取前n-2台阶的 所需要的方法
    如果最后一步是2阶台阶:那就是取前n-3台阶的 所需要的方法

    如果有n-2
    如果最后一步是1阶台阶:那就是取前n-3台阶的 所需要的方法
    如果最后一步是2阶台阶:那就是取前n-4台阶的 所需要的方法

    以此类推

    说白了就是n阶台阶 有多少种方法 就是n-1台阶的方法+n-2台阶的方法

    即:
    台阶数:方法
    1:1
    2:2
    3:1+2=3
    4:2+3=5
    5:3+5=8
    6:5+8=13

    LeetCode解题

    class Solution:
        def climbStairs(self, n: int) -> int:
            if n==1:
                return 1
            a = 1
            b = 2
            for i in range(2,n):
                b,a = b+a,b
            return b
    

    关注我获取更多内容

    相关文章

      网友评论

          本文标题:[LeetCode]70.爬楼梯

          本文链接:https://www.haomeiwen.com/subject/ypqwlltx.html