技术交流可以加:
本人微信:xcg852390212
本人qq:852390212
学习交流qq群1(已满): 962535112
学习交流qq群2: 780902027
裴波那契数列
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
解答
方法1:递归
会进行很多重复计算,需要优化
- 时间复杂度:O(2n)
- 空间复杂度:O(n)
方法2:迭代
循环代替递归,优化到线性的时间复杂度
C++代码
- 时间复杂度:O(n)
- 空间复杂度:O(1)
class Solution {
public:
int Fibonacci(int n) {
if(n <= 0)
return 0;
if(n == 1 || n == 2)
return 1;
int pre = 1;
int last = 1;
int cur;
for(int i = 2;i < n;i++)
{
cur = pre + last;
pre = last;
last = cur;
}
return cur;
}
};
Python代码
# -*- coding:utf-8 -*-
class Solution:
def Fibonacci(self, n):
# write code here
if n == 0:
return 0
if n == 1:
return 1
pre,cur = 0,1
for i in range(2,n+1):
nex = pre + cur
pre = cur
cur = nex
return nex