美文网首页
[入门]366.斐波纳契数列

[入门]366.斐波纳契数列

作者: 我叫小小强 | 来源:发表于2017-06-26 22:42 被阅读50次

我是小小强,这是我的第4篇原创文章,阅读需要大约10分钟。


题目

LintCode:斐波纳契数列

描述

查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:
前2个数是 01
第 i 个数是第i-1个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

样例

给定 1,返回0
给定 2,返回1
给定10,返回 34

实现

递归实现

  1. java代码
class Solution {
    public int fibonacci(int n) {
        if (n == 1) {
            return 0;
        } else if (n == 2) {
            return 1;
        } else {
            return fibonacci(n - 1) + fibonacci(n - 2);
        }
    }
}
  1. 结果分析
    结果:结果不尽人意,速度非常慢,甚至没有通过 LintCode 的评测。
    分析:这种递归不同于一般的递归,在 n 较大时,两次递归调用中存在大量的重复运算,导致速度非常慢。

非递归实现

  1. java代码
class Solution {
    public int fibonacci(int n) {
        if(1==n)
            return 0;
        if(2==n)
            return 1;
        int a=0;
        int b=1;
        int sum=0;
        while(n>2)
        {
            sum=a+b;
            a=b;
            b=sum;
            n--;
        }
        return sum;
    }
}
  1. 结果分析
    结果:经测试 C++ 最快可以以 10ms 轻松通过 LintCode 的评测。
    分析:时间复杂度为 o(n) ,空间复杂度为 o(1) ,效果不错。
    细节:使用 while 代替 for 节省了一个 Int(4Byte) 的空间。

其它优化参考

斐波纳契数列实现及优化

相关文章

  • 366. 斐波纳契数列

    查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指: 斐波纳契数列的前10个数字是: 0, 1, 1, 2, ...

  • JavaScript|斐波纳契数列

    斐波纳契数列定义: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波...

  • [入门]366.斐波纳契数列

    我是小小强,这是我的第4篇原创文章,阅读需要大约10分钟。 题目 LintCode:斐波纳契数列 描述 查找斐波纳...

  • 我的python学习笔记-第八天

    先编个小程序 我们尝试来写一个斐波纳契数列。先说下啥是斐波纳契数列。事情是这样的:斐波那契数列(Fibonacci...

  • 尾递归优化的斐波那契数列

    斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(...

  • 递归优化的斐波那契数列

    斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(...

  • 斐波那契数,计算与分析

    什么是斐波那契数列? 斐波那契数列(Fibonacci sequence)是以意大利数学家列昂纳多·斐波那契的名字...

  • 366. 斐波纳契数列

    查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指: 前2个数是 0 和 1 。第 i 个数是第 i-1 个...

  • 366.斐波纳契数列

    查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是 0 和 1 。第 i 个数是第 i-1 个数和...

  • 斐波那契数列

    题目: 写一个函数,输入n,求斐波那契数列的第n项。 思路: 什么是斐波那契数列呢? 斐波纳契数列(Fibonac...

网友评论

      本文标题:[入门]366.斐波纳契数列

      本文链接:https://www.haomeiwen.com/subject/rnxscxtx.html