对于1阶台阶来说,小青蛙只有1种跳法,就是向上跳1级;对于2阶台阶来说,小青蛙有2种跳法,分别是:向上跳1级然后再跳1级 & 直接向上跳2级;对于3阶台阶来说,小青蛙有3种跳法,分别是:执行3次1级跳 & 直接向上跳2级再跳1级 & 先跳1级然后直接向上跳2级;对于4阶台阶来说,小青蛙有5种跳法,...
剑指Offer 10- II. 青蛙跳台阶问题(70. 爬楼梯) 题目: 思路: 【1】动态规划,利用F(N)=F(N-1)+F(N-2)的公式。 【2】矩阵快速幂(重点难以理解) 【3】通项公式:根据递推方程 f(n)=f(n−1)+f(n−2),我们可以写出这样的特征方程:x^2 = x + 1。 【但这种只限于爬楼梯,因为如果要除某个...
当为2级台阶:剩余n-2个台阶,此情况共有 f(n-2)中跳法; f(n) 为以上两种情况之和,即 f(n) = f(n-1) + f(n-2) .以上递推性质为斐波那契数列。 可转化为求斐波那契数列第n项的值。与10-1唯一不同在于,起始数字不同。 青蛙跳台阶问题: f(0) = 1, f(1)=1, f(2) =2 斐波那契数列问题:...
一、题目 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 二、思路 原理: 以斐波那契数列性质 f(n+1)=f(n)+f(n−1)为转移方程 三、代码 classSolution: def numWays(self, ...
题目 思路1:动态规划 f(n)表示n级台阶的上法,到最后一个台阶可能是1步或两步,则有f(n)=f(n-1)+f(n-2)的递推关系,那就可以使用解决斐波那契数列的动态规划方法。初始值由于题目设置f(0)=1,f(1)=1。 Python classSolution:defnumWays(self,n:int)->int:dp=[1,1]foriinrange(2,n+1):dp.app...
classSolution:defnumWays(self,n:int)->int:ifn<2:return1dp=[1]*(n+1)foriinrange(2,n+1):dp[i]=dp[i-1]+dp[i-2]returndp[n]%(10**9+7) 空间复杂度可以优化一下 classSolution:defnumWays(self,n:int)->int:a,b=1,1foriinrange(n-1):a,b=a+b,areturna%(10**9+7)...
简介:(剑指Offer)10、菲波那切数列I—10、青蛙跳台阶问题II—63、股票的最大利润(2021/12/04) 10、菲波那切数列I 题目描述 难度:简单 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 ...
【leetcode】剑指 Offer 10- II. 青蛙跳台阶问题(python3 版), 视频播放量 628、弹幕量 4、点赞数 4、投硬币枚数 2、收藏人数 0、转发人数 0, 视频作者 天下第二8823, 作者简介 龙的传人,相关视频:【leetcode】剑指 Offer 53 - II. 0~n-1中缺失的数字(python3 版),
剑指Offer 10- II. 青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 输入:n = 2 输出:2 输入:n = 7...
第10-2 题:变态跳台阶 传送门:牛客网:变态跳台阶。 一只青蛙一次可以跳上 级台阶,也可以跳上 级,……,它也可以跳上 级。求该青蛙跳上一个 级的台阶总共有多少...