面试题 (斐波那契数列,复杂度为线性)
来自网易的一道看似简单的笔试题
题目:要求以线性时间复杂度实现斐波那契数列。
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];
}
面试题 (斐波那契数列,复杂度为线性)相关推荐
- 算法面试题: 斐波那契数列
leetcode 算法面试题: 通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和 方案一(递归): /*** 递归* @param ...
- 求解斐波那契数列复杂度分析
前言:斐波那契作为一个算法基础知识,大家一定要掌握,祝大家学得开心~ 什么是斐波那契数列(Fibonacci sequence)? 斐波那契数列(Fibonacci sequence),又称黄金分割数 ...
- 斐波那契数列简单步骤分析
斐波那契数列简单步骤分析 有些同学总觉得斐波那契数列很困难,其实只要把函数搞明白就一点就不困难了. 首先,来看看一段代码: #斐波那契 n = eval(input("请输入一个数:&quo ...
- 递推公式斐波那契数列的几种求法
什么是递推公式 递推公式就是形如斐波那契数列那样,每一项都由前面几项运算求得 下面以斐波那契数列为例讲解递推公式的几种求解方法 斐波那契数列 斐波那契数列形式如下: F(n)={1n=11n=2F(n ...
- 剑指offer——面试题10:斐波那契数列
个人答案: 1 #include"iostream" 2 #include"stdio.h" 3 #include"string.h" 4 ...
- fibonacci数列前20项_面试题精选:神奇的斐波那契数列
斐波那契数列,其最开始的几项是0.1.1.2.3.5.8.13.21.34-- ,后面的每一项是前两项之和,事实上,斐波那契在数学上有自己的严格递归定义. f0 = 0 f1 = 1 f(n) = f ...
- [剑指offer]面试题9:斐波那契数列
面试题9:斐波那契数列 题目一:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项.斐波那契数列的定义如下: ❖ 效率很低的解法,挑剔的面试官不会喜欢 代码如下: long long f ...
- 剑指Offer - 面试题10- I. 斐波那契数列
文章目录 1. 题目 2. DP解题 3. 面试题 08.01. 三步问题 4. LeetCode 509. 斐波那契数 1. 题目 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 ...
- 笔试题:一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。该题有三种解法:递归的方法求解斐波那契数列、用概率与统计的数学方法解决,3.动态规划
笔试题 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法.该题有三种解法:1.递归的方法求解斐波那契数列.2.用概率与统计的数学方法解决,3.动态规划 ...
最新文章
- python 类属性和对象属性--定义和作用域
- ubuntu12.10安装openssh-server与本身的软件冲突
- Linux id指令
- python字典基础知识点
- (十三)算法设计思想之“动态规划”
- 跳石板(通俗易懂的思路和方法)
- 使用Python实现简易的数据标注工具
- 分类学计算机面试什么,史上最全的机器学习面试题-机器学习爱好者必看
- 增值业务综合运营平台(VGOP)
- Python标准模块--multiprocessing
- ESP32和LoRa SX1278通讯
- python小乌龟绘制迷宫_python小乌龟turtle数学作图
- 注册跨境电商需要多少钱?还需要办理哪些事项?
- 微信全面开放个人免费版红包封面!
- iOS逆向:微信逆向及动态库开发过程中的坑
- 基于Springboot实现的自动化测试平台
- linux电脑开机蓝屏,Windows 7电脑开机蓝屏怎么办 电脑开机蓝屏解决方法linux操作系统 -电脑资料...
- JavaScript 当前时间显示(js)
- PIN, PIN2, PUK, PUK2
- apt-get install r-base出现有几个软件包无法下载