剑指offer_09 斐波那契数列

原创 2016年08月30日 20:42:21
    写一个函数,输入n,求斐波那契数列的第n项。
    思路: 递归 、 顺序求 、公式。 
    递归:重复的节点数会随着n的增大而急剧增加,这意味着计算量会随着n的增大而急剧增大。事实上,用递归的方法计算的时间复杂度是以n的指数的方式递增的。
    顺序:从下往上计算,首先计算f(0)和f(1)算出f(2),再根据f(1)和f(2)算出f(3)……依次类推就可以算出第n项了。很容易理解,这种思路的时间复杂度为O(n)。 
    公式:第三种方法把求斐波那契数列转换成求矩阵的乘方,是一种很有创意的算法。虽然我们可以哟个O(logn)求的矩阵的n次方,但由于隐含的时间常熟较大,很少会有软件采用这种算法,另外,实现这种算法的代码也交复杂,不太适用于面试。

这里写图片描述
代码:
递归:
这里写图片描述
顺序:

 public long fibonacci(int n){  
        long result =0;  
        long preOne = 1;  
        long preTwo = 0;  
        if( n == 0){  
            return preTwo;  
        }  
        if(n == 1){  
            return preOne;  
        }  
        for(int i = 2;i<= n ;i++){  
            result = preOne+preTwo;  
            preTwo = preOne;  
            preOne = result;  
        }  
        return result;  
    }  
    public static void main(String[] args){  
        E09Fibonacci fabonacci = new E09Fibonacci();  
        System.out.println(fabonacci.fibonacci(10));  
    }  
版权声明:本文为博主原创文章,未经博主允许不得转载。

剑指 offer:斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 要求使用非递归算法,递归算法效率低。 public class Solution { publi...
  • mingtian369
  • mingtian369
  • 2015年09月15日 12:44
  • 214

剑指offer-010-斐波那契数列

斐波那切数列递归-循环-矩形算法及扩展题
  • triorwy
  • triorwy
  • 2018年01月22日 12:01
  • 45

剑指offer-9 斐波那契数列

一、这个问题有很多变形 比如台阶问题,矩形填充问题,猴子摘香蕉问题 #include using namespace std; /* 和台阶问题,摘香蕉问题,矩形填充问题相同 */ ...
  • u012730315
  • u012730315
  • 2015年05月06日 14:52
  • 456

剑指Offer-斐波那契数列

斐波那契数列题目描述:   大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 解题思路:   斐波那契数列:0、1、1、2、3、5、8、13、21、34、…… 这...
  • yannanying
  • yannanying
  • 2015年08月29日 00:13
  • 993

【剑指**】10.斐波那契数列

10.斐波那契数列考察递归与循环的写法。思路1 递归class Solution { public: int Fibonacci(int n) { int ret = help...
  • u011327333
  • u011327333
  • 2018年01月02日 18:45
  • 24

剑指offer_7 斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n...
  • nalanmingdian
  • nalanmingdian
  • 2017年08月24日 12:52
  • 49

剑指offer-斐波那契数列

斐波那契数列                                        #include long long Fibonacci(unsigned int n...
  • zpwangshisuifeng
  • zpwangshisuifeng
  • 2017年04月23日 15:52
  • 195

剑指offer---010(斐波那契数列)

问题描述: 写入一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下: 思路: 三种算法:递归,非递归,矩阵 时间复杂度:递归O(2^n),非递归O(n)...
  • zhangye3017
  • zhangye3017
  • 2018年01月21日 19:08
  • 44

剑指offer06--斐波那契数列

使用巧妙的方式得到斐波那契数列
  • jinhuoxingkong
  • jinhuoxingkong
  • 2016年05月18日 11:16
  • 513

剑指offer--斐波那契数列

题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 public class Solution { public int Fibonacci(int ...
  • kangaroo835127729
  • kangaroo835127729
  • 2015年04月10日 23:24
  • 634
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer_09 斐波那契数列
举报原因:
原因补充:

(最多只允许输入30个字)