来自网易的一道看似简单的笔试题

题目:要求以线性时间复杂度实现斐波那契数列。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 。。。。。。

众所周知的斐波那契实现方式为递归实现:

int feb1(int n) {t1++;if(n == 0 || n == 1) return 1;return feb1(n-1) + feb1(n-2);
}

当n=25时, 迭代次数为242785 。

关于其复杂度的解释比较麻烦,详见http://www.cnblogs.com/python27/archive/2011/12/09/2282486.html

至今看了公开课视频后,才有所感悟,采用动态规划后,其复杂度直接下降到线性,迭代次数为49 。

int a[1000] = {0};
int feb2(int n) {t2++;if(n == 0 || n == 1) return 1;if(a[n] != 0) return a[n];else a[n] = feb2(n-1) + feb2(n-2);return a[n];
}

面试题 (斐波那契数列,复杂度为线性)相关推荐

  1. 算法面试题: 斐波那契数列

    leetcode 算法面试题: 通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和 方案一(递归): /*** 递归* @param ...

  2. 求解斐波那契数列复杂度分析

    前言:斐波那契作为一个算法基础知识,大家一定要掌握,祝大家学得开心~ 什么是斐波那契数列(Fibonacci sequence)? 斐波那契数列(Fibonacci sequence),又称黄金分割数 ...

  3. 斐波那契数列简单步骤分析

    斐波那契数列简单步骤分析 有些同学总觉得斐波那契数列很困难,其实只要把函数搞明白就一点就不困难了. 首先,来看看一段代码: #斐波那契 n = eval(input("请输入一个数:&quo ...

  4. 递推公式斐波那契数列的几种求法

    什么是递推公式 递推公式就是形如斐波那契数列那样,每一项都由前面几项运算求得 下面以斐波那契数列为例讲解递推公式的几种求解方法 斐波那契数列 斐波那契数列形式如下: F(n)={1n=11n=2F(n ...

  5. 剑指offer——面试题10:斐波那契数列

    个人答案: 1 #include"iostream" 2 #include"stdio.h" 3 #include"string.h" 4 ...

  6. fibonacci数列前20项_面试题精选:神奇的斐波那契数列

    斐波那契数列,其最开始的几项是0.1.1.2.3.5.8.13.21.34-- ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义. f0 = 0 f1 = 1 f(n) = f ...

  7. [剑指offer]面试题9:斐波那契数列

    面试题9:斐波那契数列 题目一:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: ❖ 效率很低的解法,挑剔的面试官不会喜欢 代码如下: long long f ...

  8. 剑指Offer - 面试题10- I. 斐波那契数列

    文章目录 1. 题目 2. DP解题 3. 面试题 08.01. 三步问题 4. LeetCode 509. 斐波那契数 1. 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 ...

  9. 笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划

    笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.该题有三种解法:1.递归的方法求解斐波那契数列.2.用概率与统计的数学方法解决,3.动态规划 ...

最新文章

  1. python 类属性和对象属性--定义和作用域
  2. ubuntu12.10安装openssh-server与本身的软件冲突
  3. Linux id指令
  4. python字典基础知识点
  5. (十三)算法设计思想之“动态规划”
  6. 跳石板(通俗易懂的思路和方法)
  7. 使用Python实现简易的数据标注工具
  8. 分类学计算机面试什么,史上最全的机器学习面试题-机器学习爱好者必看
  9. 增值业务综合运营平台(VGOP)
  10. Python标准模块--multiprocessing
  11. ESP32和LoRa SX1278通讯
  12. python小乌龟绘制迷宫_python小乌龟turtle数学作图
  13. 注册跨境电商需要多少钱?还需要办理哪些事项?
  14. 微信全面开放个人免费版红包封面!
  15. iOS逆向:微信逆向及动态库开发过程中的坑
  16. 基于Springboot实现的自动化测试平台
  17. linux电脑开机蓝屏,Windows 7电脑开机蓝屏怎么办 电脑开机蓝屏解决方法linux操作系统 -电脑资料...
  18. JavaScript 当前时间显示(js)
  19. PIN, PIN2, PUK, PUK2
  20. apt-get install r-base出现有几个软件包无法下载

热门文章

  1. c/c++ 中文件路径的表示
  2. 吴恩达深度学习2.2笔记_Improving Deep Neural Networks_优化算法
  3. Android JNI 学习(十):String Operations Api Other Apis
  4. Fail - Fast机制
  5. Direct2D教程(十二)图层
  6. 编辑WCF配置不出现
  7. Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结
  8. C# 读取excel
  9. java生成Excel文件,下载
  10. ckeditor编辑的使用方法