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

劍指offer-斐波那契數列

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]