剑指Offer 10-II. 青蛙跳台阶问题


一、题目

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

示例 1:

输入:n = 2
输出:2

示例2:

输入:n = 7
输出:21

示例3:

输入:n = 0
输出:1

提示:

  • 0 <= n <= 100

注意:本题与主站 70 题相同:https://leetcode-cn.com/problems/climbing-stairs/

二、思路

1. 动态规划

详情请参考上一篇

三、代码

1. 动态规划

class Solution:
    def numWays(self, n: int) -> int:
        a, b = 0, 1
        for _ in range(n):
            a, b = b, a+b

        return b % 1000000007

四、表现

method 运行时间 表现 内存消耗 表现
1. 动态规划 32ms 95.82% 13.5MB 5.18%

文章作者: Arvin He
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Arvin He !
评论
 上一篇
剑指Offer 11. 旋转数组的最小数字 剑指Offer 11. 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组[3,4,5,1,2]为[1,2,3,4,5]的一个旋转,该数组的最小值为1。
2020-10-27
下一篇 
剑指Offer 10-I. 斐波那契数列 剑指Offer 10-I. 斐波那契数列
写一个函数,输入n,求斐波那契数列的第 n 项。
2020-10-27
  目录