劍指 offer 10- ii. 青蛙跳台階問題
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例 1:
輸入:n = 2
輸出:2
示例 2:
輸入:n = 7
輸出:21
示例 3:
輸入:n = 0
輸出:1
趁熱打鐵,解決了斐波那契數列,我們看看這只小?
其實,這也是乙個斐波那契數列問題,只是之前的題目直接告訴你是斐波那契數列,資料之間的關係明確的告訴了你,而青蛙跳台階問題沒有告訴你資料之間的關係而已。
找出資料之間的關係:
假如青蛙最後要跳到第n個台階,那麼,?有兩種辦法:
第一種:從第n - 1個台階跳1級台階
第二種:從第n - 2個台階一下跳2級台階
那麼,有朋友會問了,從第n - 2個台階到第n個台階也有兩種辦法呀,可以一下跳兩個,也可以每次跳乙個,這不是兩種辦法麼?當n = 0時,f(0) = 0;其實,並不是,如果從第n - 2到第n - 1,再從第n - 1到第n
當從第n - 1到第n的方法,已經歸屬於是第一種方法了
當n = 1時,f(1) = 1;
當n = 2時,f(2) = 2;
當n = 3時,f(3) = f(1) + f(2) = 3;
…f(n) = f(n - 1) + f(n - 2),n > 2
不難寫出遞迴**:
毫無意外的, 超出了時間限制。。。class
solution
}
那麼,我們使用迭代:
class
solution
return sum;
}}
class
solution
return dp[n];}
}
青蛙跳台階(劍指 Offer 10 II)
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 coding utf 8 class solution def jumpfloor self,number write code here a,b 1,2 for i in range...
劍指 Offer 10 II 青蛙跳台階問題
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。答案需要取模 1e9 7 1000000007 如計算初始結果為 1000000008,請返回 1。示例 1 輸入 n 2 輸出 2 示例 2 輸入 n 7 輸出 21 示例 3 輸入 n 0 輸出 1...
劍指 Offer 10 II 青蛙跳台階問題
leetcode 劍指 offer 有 n 個台階,設 n 個台階有 dp n 種跳法,分情況 青蛙跳 1 個台階,剩下的 n 1 個台階有 dp n 1 種跳法 青蛙跳 2 個台階,剩下的 n 2 個台階有 dp n 2 種跳法。由上找到狀態之間的關係 dp n d n 1 dp n 2 一直按照...