美文网首页
[剑指Offer]10-II 青蛙跳台阶问题

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

作者: 炭烧熊猫 | 来源:发表于2020-03-22 16:22 被阅读0次

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

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

示例 1:

输入:n = 2
输出:2

示例 2:

输入:n = 7
输出:21

提示:

  • 0 <= n <= 100

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/

解题思路:
看过剑指offer的人应该对这道题都有印象,那个叫做斐波那契数列其实就是这道题的核心。

科普一下下

斐波那契数列(Fibonacci sequence),又称黄金分割数列、兔子数列,是数学家列昂纳多·斐波那契于1202年提出的数列。

斐波那契数列为1、1、2、3、5、8、13、21、34……此数列从第3项开始,每一项都等于前两项之和,递推公式为F(n)=F(n-1)+F(n-2),n≥3,F(1)=1,F(2)=1。

在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。

主要利用的公式就是斐波那契公式的变种F(n)=F(n-1)+F(n-2),n≥3,F(1)=1,F(2)=2

同样很正常可以想到递归,递归是可以实现的,但确实执行时间过长,leetcode网站不接受,所以在此就忽略了。

看非递归算法,也就是循环求的F(1), F(2), F(3) ... F(n), 再把结果累计下来就是总数

public int numWays(int n) {
        if (n<0)
            return 0;
        if (n==1 || n==0)
            return 1;        
        if (n==2)
            return 2;

        int step = 0;
        int fn1 = 1, fn2 = 2;
        int m = 1000000007;
        for(int i=2; i<n; i++){
            step = (fn1 + fn2)%m;
            fn1 = fn2;
            fn2 = step;
        }           

        return step; 
    }

10-I 斐波那契数列解法相同

https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof/

相关文章

  • [剑指Offer]10-II 青蛙跳台阶问题

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

  • LeetCode | 面试题10- II. 青蛙跳台阶问题【剑指

    LeetCode 面试题10- II. 青蛙跳台阶问题【剑指Offer】【Easy】【Python】【动态规划】 ...

  • leetcode--recursion(1)

    剑指 Offer 10- II. 青蛙跳台阶问题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一...

  • 青蛙跳台阶问题

    《剑指offer》面试题10(题目二):青蛙跳台阶问题。 题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。...

  • 每日一练(6):青蛙跳台阶问题

    title: 每日一练(6):青蛙跳台阶问题 categories:[剑指offer] tags:[每日一练] d...

  • leetcode面试top(8动态规划)

    案例一、简单的一维 DP 剑指 Offer 10- II. 青蛙跳台阶问题[https://leetcode-cn...

  • 剑指offer

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

  • 青蛙跳台阶问题扩展(变态跳台阶)

    《剑指offer》面试题10(题目二)扩展问题: 题目:在青蛙跳台阶的问题中,如果把条件改成:一只青蛙一次可以跳上...

  • 剑指Offer(八)

    剑指Offer(八) 跳台阶 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶...

  • 动态规划

    青蛙跳台阶问题 问题:一个青蛙,一次只能跳一级台阶,或者跳两级台阶,这个青蛙跳 n 级台阶有多少种跳法? 如果这只...

网友评论

      本文标题:[剑指Offer]10-II 青蛙跳台阶问题

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