一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。
求該青蛙跳上一個 n 級的臺階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果爲:1000000008,請返回 1。
示例 1:
輸入:n = 2
輸出:2
示例 2:
輸入:n = 7
輸出:21
提示:
0 <= n <= 100
解題思路
- 樓梯和我們的數據結構什麼可以聯繫起來呢?數組。沒錯就是數組。
- 然後呢?? 然後不會了。。。。。。。
- 看答案。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-IkbuOgIo-1592652679169)(http://note.youdao.com/yws/res/15345/4E1C4A0E10254A629C3916C1E321427B)] - 好的那就是有思路了,來寫一下。
- 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/