劍指offer-斐波那契數列
阿新 • • 發佈:2018-12-13
2. 斐波那契數列
時間限制:1秒 空間限制:32768K 熱度指數:410368 題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39
題目分析
經典的遞推問題結果數滿足一個公式,從簡單的開始推導結果。
n 結果 f(n) 0 0 1 1 2 1 3 2 4 3 n f(n-1) + f(n-2)
下面是程式碼實現,當n<=2時,返回定義好的陣列,當大於2時,開始進行迴圈計算。相比於遞迴演算法,時間複雜度要小,因為每次計算的結果都儲存了下來。
Tips:
在python中,list(range(4)) = [0,1,2,3] 是不包含4這個元素的,要注意。
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
# write code here
re = [0,1,1]
if n<=2:
return re[n]
for i in range(3,n+1):
re.append(re[i-1] + re[i-2])
return re[n]