• 《剑指offer》---斐波那契数列


    本文算法使用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)
    
    

    所需时间:
      




    迭代法

    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]
    
    

    所需时间:
      

  • 相关阅读:
    oracle操作。
    python 多行对应元素求和
    matplotlib 画饼图
    ggplot2 图例及分页参数
    python(3)跳过第一行(多行)读入数据
    seqtk抽取测序数据
    数据库命令补全工具mycli
    取色网站
    perl 转置矩阵
    python 调用系统软件
  • 原文地址:https://www.cnblogs.com/lliuye/p/9048094.html
Copyright © 2020-2023  润新知