class Solution(object):
def fib(self, n):
"""
:type n: int
:rtype: int
"""
if n <2:
return n
f =[0] * (n + 1)
f[0]=0
f[1]=1fornin range(2, n+1):
f[n]= f[n-1] + f[n-2]return f[n]
时间复杂度:O(n)
空间复杂度:O(n)
空间优化
class Solution(object):
def fib(self, n):
"""
:type n: int
:rtype: int
"""
if n <2:
return n
prev, curr =0, 1# 初始化前两个斐波那契数for_in range(2, n + 1):
prev, curr = curr, prev + curr # 更新前两个值return curr