乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。
答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。
示例 1:
輸入:n = 2
輸出:2
示例 2:
輸入:n = 7
輸出:21
python
# 思路:
# 避免重複計算,棄用遞迴,採用動態規劃;實質就是裴波那契數列
# 複雜度:
# o(n)
class
solution
:def
numways
(self, n:
int)
->
int:
if n<0:
return-1
elif n==0:
return
1elif n==1:
return
1else
: dp =
dp[0]
=1dp[1]
=1for i in
range(2
, n+1)
: dp[i]
=(dp[i-1]
+dp[i-2]
)%1000000007
return dp[n]
c++class
solution
return dp[n];}
}};
劍指offer 青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 這是一道比較簡單的動態規劃問題。n 1時,青蛙只能跳一次,即num 1 n 2時,青蛙可以有兩種方法,1 1,2 即num 2 n 3時,青蛙可以有三種方法,1 1 1,1 2,2 1...
劍指offer 青蛙跳台階
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 public class solution if target 1 if target 2 return jumpfloor target 1 jumpfloor target 2 乙...
《劍指offer》的青蛙跳級演算法
乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級台階總共有多少種跳法?對於這種題,我們要先從數學的角度出發 若台階只有一級,則只有一種跳法,若台階只有兩級,則只有兩種跳法,當台階有 的時候,又分情況了,設n級的時候有f n 種跳法,第一跳為1級,則還剩f 3 1 種跳法,第一跳為2...