剑指offer斐波那契数列python
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
思路
斐波那契数列,即第n项为第n-1项和n-2项的和,可用递归,但复杂度高。直接用一个数组保存之前的项即可。
代码
1 # -*- coding:utf-8 -*- 2 class Solution: 3 def Fibonacci(self, n): 4 ans = [0,1,1,2] 5 while n > len(ans) - 1: 6 ans.append(ans[-1]+ans[-2]) 7 return ans[n]