【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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章