劍指Offer系列10 2 青蛙跳台階問題

2021-10-08 04:38:06 字數 810 閱讀 1261

乙隻青蛙一次可以跳上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...