【剑指offer】裴波那契数列(Python)

动态规划是“自下而上”求解,从最基础的base解到最终解。
这里基础解就是第0项和第1项,第2项=第0项+第1项,从第2项开始往上。
时间复杂度:O(n)
空间复杂度:O(1)

# -*- coding:utf-8 -*-
class Solution:
    def Fibonacci(self, n):
        # write code here
        # 动规是从下往上的
        if n <= 1: return n
        pre1 = 1
        pre2 = 0
        fib = 0
        for i in range(2,n+1):
            fib = pre1 + pre2
            pre2 = pre1 
            pre1 = fib
        return fib