【leetCode】青蛙跳台问题(这只青蛙会托马斯大旋转)day07

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。

求该青蛙跳上一个 n 级的台阶总共有多少种跳法。

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

示例 1:

输入:n = 2
输出:2
示例 2:

输入:n = 7
输出:21
提示:

0 <= n <= 100

解题思路

  1. 楼梯和我们的数据结构什么可以联系起来呢?数组。没错就是数组。
  2. 然后呢?? 然后不会了。。。。。。。
  3. 看答案。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IkbuOgIo-1592652679169)(http://note.youdao.com/yws/res/15345/4E1C4A0E10254A629C3916C1E321427B)]
  4. 好的那就是有思路了,来写一下。
  5. Show me Code
class Solution {
    public int numWays(int n) {
        int[]  lts = new int[n+1];
            if (n< 2){
            if(n ==0){
                return 0;
            }else{
                return 1;
            }
        
        }else{
                lts[0] = 0;
            lts[1] = 1;
            for(int i =2 ;i<n+1 ;i++){
                lts[i] = (lts[i-1] +lts [i-2]) % 1000_000_007;
            }
        return lts[n];
            
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEsHUSL1-1592652679170)(http://note.youdao.com/yws/res/15353/B84757ADC26B4D35AAB6284170965DD7)]
好吧!!
6. 正确答案

class Solution {
    public int numWays(int n) {
        int[]  lts = new int[n+1];
            if (n< 2){
            if(n ==0){
                return 1;
            }else{
                return 1;
            }
        
        }else{
                lts[0] = 1;
            lts[1] = 1;
            for(int i =2 ;i<n+1 ;i++){
                lts[i] = (lts[i-1] +lts [i-2]) % 1000_000_007;
            }
        return lts[n];
            
        }
    }
}

会托马斯大旋转的青蛙就是牛逼!!!!!

题目来源

https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/

猜你喜欢

转载自blog.csdn.net/weixin_40413961/article/details/106876654