面试题 (斐波那契数列,复杂度为线性)
来自网易的一道看似简单的笔试题
题目:要求以线性时间复杂度实现斐波那契数列。
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.动态规划 ...
最新文章
- TensorRT 7.2.1开发初步
- 解决下载图片不论图像多大总是模糊的问题
- ubuntu 修改hostname
- mysql 5.6 删除用户_mysql 新增 删除用户和权限分配
- linux查看进程和线程的命令
- [Vue源码分析] Virtual DOM
- 没有docker,谈什么微服务架构?
- Linux—vim/vi 翻页跳转命令快捷键
- 并发编程之ReadWriteLock接口
- 台达plc控制伺服电机编程实例_plc控制伺服电机程序实例讲解!成功都是可以复制的!...
- android studio打包h5打包,AndroidStudio将html5打包成apk
- Norsar 3D v5.44 Linux 1CD(功能强大的正演软件)
- 文案怎么写,才会更有画面感,告诉你2个方法(三)
- 2022年底了,你们公司还好吗?我这里不太好
- Fusion 360 以及 API 快速了解
- rk3128投影仪lcd显示四周显示不完整解决
- 「可视化搭建系统」——从设计到架构,探索前端领域技术和业务价值
- 什么是云管平台?业界知名的云管平台品牌有哪些?
- 自己动手 优化Win7
- uniapp 数据统计,数据埋点,自定义事件埋点封装
热门文章
- C++ delete删除动态分配的内存
- C++ static 类成员
- [BZOJ] 3301: [USACO2011 Feb] Cow Line
- 病毒及攻击防御手册之八
- Spring Boot配置文件规则以及使用方法官方文档查找以及Spring项目的官方文档查找方法...
- 慕课网-C++远征之多态篇(中)-学习笔记
- 移动CRM的客户价值细分
- VS Code创建C项目
- 学习面向对象的Javascript的第一步就是要搞清楚两个东西:原型链和作用域链
- 讲好话、好讲话和讲话好