劍指offer JZ8 跳台階

2021-10-23 09:47:27 字數 587 閱讀 4151

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0,第1項是1)。n<=39

又是乙個經典的動態規劃問題,只需要注意到n的情況等於n-1的和n-2的情況之和即可,注意開始時對特殊情況的討論

class

solution

:def

jumpfloor

(self, number)

:# write code

n = number

if n ==0:

return

0if n ==1:

return

1if n ==2:

return

2 dp =[0

]*(n+1

) dp[0]

=0dp[1]

=1dp[2]

=2for i in

range(3

, n+1)

: dp[i]

= dp[i-1]

+ dp[i-2]

return dp[n]

8 劍指offer 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 比較傾向於找規律的解法,f 1 1,f 2 2,f 3 3,f 4 5,可以總結出f n f n 1 f n 2 的規律,但是為什麼會出現這樣的規律呢?假設現在6個台階,我們可以從第5...

8 劍指offer 跳台階

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。解題思路 f n f n 1 f n 2 且0 1 2需要單獨處理 1 include 2 using namespace std 3class solution 9int f1 1 10 int f...

劍指 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 分析 因為只能跳1級或2,假設n階有f n 種跳法。所以有兩種情況 a 如果第一次跳的是1階,那麼剩下的n 1個台階,跳法有f n 1 b 如果第一次跳的是2階,那麼剩下的n 2個台階...