博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《剑指offer》---斐波那契数列
阅读量:4837 次
发布时间:2019-06-11

本文共 798 字,大约阅读时间需要 2 分钟。

本文算法使用python3实现


1.题目描述:

  大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39

  时间限制:1s;空间限制:32768K


2.思路描述:

  实现斐波那契额数列主要有两种方法:

  (1)递归法:自顶向下进行,当递归较深时,时间复杂度是很高的。
  (2)迭代法:自底向上进行,从第0项开始计算,并将结果保存起来,最后返回第n项即可。该方法时间复杂度较低,但需要额外空间,相对于递归来说,是一种空间换时间的方法。
  接下来我们将分别对两种方法进行实现,并比较两者的时间消耗。


3.程序代码:

递归法

class Solution:    def Fibonacci(self, n):        '''递归法'''        if n in [0,1]:            return n        return self.Fibonacci(n-2)+self.Fibonacci(n-1)

所需时间:

  1238724-20180516205133704-598209278.jpg

迭代法

class Solution:    def Fibonacci(self, n):        '''迭代法'''        FibList = []        # 将前n项保存在数组中        for i in range(n+1):            if i in [0,1]:                FibList.append(i)                continue            FibList.append(FibList[-2]+FibList[-1])        return FibList[-1]

所需时间:

  1238724-20180516205143072-1311563599.jpg

转载于:https://www.cnblogs.com/lliuye/p/9048094.html

你可能感兴趣的文章
LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数)
查看>>
51nod 1351 吃点心(贪心)
查看>>
Vim配置(python版)
查看>>
Sublime Text2编辑器
查看>>
atan2 pow
查看>>
Java 类的继承
查看>>
没有美工一样可以获取设计各种各样的UI图
查看>>
[转载学习]博弈类题目小结
查看>>
百度面试题
查看>>
内核开发基础3——Linux内核配置与编译
查看>>
计算机组成原理复习
查看>>
BUPT复试专题—中序遍历序列(2013)
查看>>
【常见Web应用安全问题】---7、CRLF injection
查看>>
php7.2.1 安装
查看>>
用winrar解压时提示无法设置安全数据 拒绝访问的解决方法
查看>>
诡异的数学,数字问题 - leetcode
查看>>
交换输出
查看>>
设计模式-策略模式&状态模式&访问者模式
查看>>
python学习第三十三节(IO模型)
查看>>
linux pci 驱动小结
查看>>