斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
来源:互联网 发布:dnf刷图老是网络中断 编辑:程序博客网 时间:2024/05/10 18:40
前段时间参加网易笔试,遇到这么一个题,实现斐波那契数列,要求时间复杂度尽可能小,但必须小于O(n方)
之前看到过这样的实现方式,好像很简单,可是就是想不起来了,当然递归实现是大家都会的,可是他的时间复杂度超过了O(n方),所以用递归肯定是不符合要求的,我当时想到的是,递归的时候,每求一个元素值就要把他之前的所有元素的计算都计算一遍,这必然降低了效率,如果改进的话就是先把之前元素得到的计算值保存,当计算下一个元素值时,直接利用已经保存的值,而无需重新计算,提高效率。回来后查了一下才知道,这种方法叫做迭代,这可不就是迭代吗。。。迭代的方法效率比较高,时间复杂度是O(n),空间复杂度是O(1)。
当然,如果实现有限个数字的输出,也可以用数组的形式,但这个效率比较低。
代码实现:
之前看到过这样的实现方式,好像很简单,可是就是想不起来了,当然递归实现是大家都会的,可是他的时间复杂度超过了O(n方),所以用递归肯定是不符合要求的,我当时想到的是,递归的时候,每求一个元素值就要把他之前的所有元素的计算都计算一遍,这必然降低了效率,如果改进的话就是先把之前元素得到的计算值保存,当计算下一个元素值时,直接利用已经保存的值,而无需重新计算,提高效率。回来后查了一下才知道,这种方法叫做迭代,这可不就是迭代吗。。。迭代的方法效率比较高,时间复杂度是O(n),空间复杂度是O(1)。
当然,如果实现有限个数字的输出,也可以用数组的形式,但这个效率比较低。
代码实现:
- 斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
- 斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
- 51nod 1242 斐波那契数列的第N项(O(logn)求递推式)
- C语言实现斐波那契数列的两种方法(递归和迭代)
- 两有序数列排序的O(n)算法
- 斐波那契数列(迭代和递归)
- LeetCode 135. Candy (O(n)时间 O(n)和O(1)空间的两种实现)
- 递归方式、迭代方式实现的斐波那契数列。
- 斐波那契数列迭代和递归实现
- 关于递归和迭代的 一次小实验(基于斐波那契数列)
- 斐波那契数列的递归和迭代(数据结构笔记)
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归、迭代(循环)、通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的两种解题思路:递归VS迭代
- java数据集合
- Analyze clauses and dbms_stats package(一)
- JMF:编写swing界面,播放一首歌
- HBase学习资源
- 关于字符串覆盖问题的解答。
- 斐波那契数列的两种实现方式(递归(大于O(n方))和迭代(O(n))----网易笔试2013录
- vkfork死循环
- Ogre3D嵌入Qt框架
- QT线程调用界面函数
- 使用vs2012配置opencv编译出现问题:error C4996: 'fopen': This function or variable may be unsafe.
- nodejs学习资料
- json 总结
- 解决Attempt to execute SCRIPT mexLasso as a function
- POJ 2955(区间dp)