第一講 sql語句是如何執行的?
阿新 • • 發佈:2021-06-19
劍指 Offer 10- II. 青蛙跳臺階問題
難度簡單一隻青蛙一次可以跳上1級臺階,也可以跳上2級臺階。求該青蛙跳上一個n
級的臺階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例 1:
輸入:n = 2 輸出:2
示例 2:
輸入:n = 7 輸出:21
示例 3:
輸入:n = 0 輸出:1
提示:
0 <= n <= 100
遞迴肯定過不了吧,不寫了。
法一:基本dp
class Solution { public: int numWays(int n) { int f[101] = {0}; f[0] = 1; f[1] = 1; f[2] = 2; for(int i=3; i<=n; i++){ f[i] = (f[i-1]+f[i-2])%(int)(1e9+7); } return f[n]; } };
法二: 滾動陣列優化
class Solution { public: int numWays(int n) { int first = 1, second = 1; for(int i=2; i<=n; i++){int tmp = second; second = (first+second)%(int)(1e9+7); first = tmp; } return second; } };