1. 程式人生 > >劍指offer刷題-斐波那契數列

劍指offer刷題-斐波那契數列

時間限制: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]