劍指offer JZ7 斐波那契數列

2021-10-23 09:26:48 字數 609 閱讀 2827

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

斐波那契數列在演算法中是經典的動態規劃問題,只要給定前兩個元素dp[0],dp[1],之後的所有元素都可以用前兩個元素相加得到即可。唯一需要注意的是,由於這裡是從第0項開始的,所以當初始化dp列表時,其長度是n+1

class

solution

:def

fibonacci

(self, n)

:# write code here

if n ==0:

return

0if n ==1:

return

1 dp =[0

]*(n+1

)#只有這裡需要注意一下長度為n+1

dp[0]

=0dp[1]

=1for i in

range(2

, n+1)

:#最後一項為n

dp[i]

= dp[i-1]

+ dp[i-2]

return dp[n]

劍指offer JZ27 斐波那契數列

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0,第1項是1 n 39 思路 1.遞迴,當n很大時會棧溢位 class solution 2.動態規劃,只需要第n個數,而方法1中有大量重複計算,前面的值都已經計算過,每次只用到前兩個數的值,利用乙個n...

7 劍指offer 斐波那契數列

大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 錯誤示範 遞迴複雜度過高,報錯顯示 記憶體溢位以及未在規定時間計算完成!class solution 遞迴的重複計算太多!可以改用迴圈,log n 時間複雜度,o 1 空間複雜度 class...

7 劍指offer 斐波那契數列

題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。n 39 解題思路 首先如果直接return fibonacci n 1 fibonacci n 2 的話會有很多值算了很多遍 因此思考如何遍歷一遍得到結果。首先0和1需要單獨計算,然後從2開始f2 f0 f1 ...