美文网首页
剑指offer 10-2 青蛙跳台阶

剑指offer 10-2 青蛙跳台阶

作者: 再凌 | 来源:发表于2020-04-28 23:04 被阅读0次

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

很容易想到递归的做法, 比如: 100台阶的可能方法 = 99台阶的方法 + 98台阶的方法, 但是很容易时间爆表.

反过来想, 3台阶的方法 = 1台阶方法 + 2台阶方法. 于是我们可以用类似斐波那契数列的方法构造数组, 来获得第100个位置的结果

同样的, 结果容易溢出int类型, (为什么是1e9+7? 两个1e9+7无限接近与int极限!->两个int相加之后再取mod), 每次相加得到的结果取一次余数

int numWays(int n){
    if(n == 0) return 1;
    int result[101];
    for(int i = 1; i<=n ; i++)
    {
        if(i == 1) result[i] = 1;
        else if(i == 2) result[i] = 2;
        else
        {
            result[i] = (result[i-1] + result[i-2] )%(int)(1e9+7);
        }
    }

    return result[n];

}

相关文章

  • 剑指offer 10-2 青蛙跳台阶

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

  • 剑指offer

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

  • leetcode--recursion(1)

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

  • 青蛙跳台阶问题

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

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

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

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

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

  • 剑指Offer(八)

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

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

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

  • 剑指offer - 青蛙跳台阶 - JavaScript

    专注前端与算法的系列干货分享,欢迎关注(¬‿¬):「微信公众号:心谭博客」| xxoo521.com | GitH...

  • 剑指Offer-青蛙跳台阶

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果...

网友评论

      本文标题:剑指offer 10-2 青蛙跳台阶

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