zoukankan      html  css  js  c++  java
  • 【剑指Offer】04斐波那契数列

    题目描述

    大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

    n<=39

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

    解题思路

    首先看到题目的第一想法就是递归,代码如下:

    # -*- coding:utf-8 -*-
    class Solution:
        def Fibonacci(self, n):
            # write code here
            if n<=1:
                return 1
            else:
                return self.Fibonacci(n-1)+self.Fibonacci(n-2)

    线下运行成功,线上调试发现会超时报错。

    递归的思路行不通于是想到了用迭代的思路,最终运行通过。python代码:

    # -*- coding:utf-8 -*-
    class Solution:
        def Fibonacci(self, n):
            # write code here
            i=0
            j=1
            k=0 #中间变量
            while n>0:
                k = j
                j += i
                i = k
                n -= 1
            return i

    看了讨论区大神们的分享,其实还能改进,可以去掉一个中间变量k,具体操作如下:

    while n>0:
        j += i
        i = j - i
        n-=1
  • 相关阅读:
    奔溃瞬间1
    面试知识点blog汇总
    贪心
    树 和 图
    DFS 和 BFS
    STL
    哈希表
    手写堆
    并查集
    二项式反演学习笔记
  • 原文地址:https://www.cnblogs.com/yucen/p/9912057.html
Copyright © 2011-2022 走看看