美文网首页
[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