斐波那切數列之動態規劃

2021-09-12 14:54:20 字數 653 閱讀 9692

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

做到這個題,初學者可能會難以理解迭代法的思路;加入以下注釋後,可以幫助理解;

class solution 

return first;}}

;

舉一反二:

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。

這其實也是乙個斐波那切問題,問題要理解,為什麼青蛙跳台階符合這個規律。

1.青蛙一次只能跳一階或者兩階,不能連跳三階。

2.假設青蛙要跳到第n階,它跳最後一步前的位置只有兩種可能。在第n-1階(代表它最後一步只跳了一階)或者第n-2階(代表它最後一步跳了兩階)。

3.遞迴起來,也就是f(n-1)+f(n-2)=f(n)。

class solution 

return second;}}

;

舉一反三:

我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋乙個2*n的大矩形,總共有多少種方法?

這題和青蛙一樣,用逆向思維去求解題目。其**和青蛙**一致。

斐波那切數列

定義斐波那契數列的第1 2項是1,之後每一項等於前兩項的和。1,1,2,3,5,8,13,21,34,55,89 輸入乙個整數n,輸出第n個斐波那契數。保證答案在int範圍內。include intadd int a if a 3 return arr a else return arr i 2 m...

動態規劃 斐波那契數列

問 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 斐波那契數列簡單介紹 我的解法 注 從fibonacci n 1 fibonacci n 2 明顯看出使用的是遞迴,此題用遞迴兩三行 即可搞定。但是,若出題者準備著乙個超大的n,那麼很有...

python斐波那契數列動態規劃

斐波那契類似於1 1 2 3 5 8這樣的數列,當前項等於前兩項之和。根據這個規律就可以用遞迴來做,可是當數字很大的時候,遞迴耗時很長,因此可以採用動態規劃來做。動態規劃 deffeibonacci1 n array 0 1 while len array n 1 array 2 return ar...