关于斐波那契数列算法设计问题 --漫漫算法路 小结篇
来源:互联网 发布:linux nginx 域名绑定 编辑:程序博客网 时间:2024/06/06 03:28
今天做了好几个需要用到斐波那契数列求解的问题,我们都知道,可以使用递归的方法,也可以使用迭代,于是我两个都试了一次,发现结果如下:
递归:
public class Solution {
public int RectCover(int target) {
if(target <=0){
return 0;
}
if(target ==1||target ==2){
return target;
}
if(target>=3)
return RectCover(target-2)+RectCover(target-1);
return 0;
}
}
public int RectCover(int target) {
if(target <=0){
return 0;
}
if(target ==1||target ==2){
return target;
}
if(target>=3)
return RectCover(target-2)+RectCover(target-1);
return 0;
}
}
结果:消耗时间 -- 465 ms 占用内存 -- 8204 k
迭代:
public
class
Solution {
public
int
RectCover(
int
target) {
if
(target <=
0
){
return
0
;
}
if
(target ==
1
||target ==
2
){
return
target;
}
int
a=
1
,b=
2
,c=
1
;
for
(;target>=
3
;target--){
c =a;
a =b;
b +=c;
}
return
b;
}
}
结果:消耗时间 -- 10 ms 占用内存 -- 8404 k
虽然二者在空间上资源占用差不多 ,但是在运算时间上却有几十倍的差距 以为递归的每次调用 不会保存计算结果
而迭代每次参与计算的结果都是前一次计算的结果 所以时间上就会有很大的差距
阅读全文
1 0
- 关于斐波那契数列算法设计问题 --漫漫算法路 小结篇
- 算法设计:斐波那契数列
- 关于斐波那契数列小结
- 斐波那契数列算法的优化设计
- 关于斐波那契数列的算法比较
- 关于斐波那契数列的复杂度最低算法
- 关于斐波那契数列各算法学习--Java
- 用两个栈实现队列、旋转数组的最小数、斐波那契数列、青蛙跳台阶、矩形覆盖 --漫漫算法路 刷题篇
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- Canvas&Paint[]Paint:drawText位置
- 解决遗留问题:@PostConstruct注入不成功
- Java并发编程:Callable、Future和FutureTask
- 前端之插件-ztree
- 贪心算法 题型总结
- 关于斐波那契数列算法设计问题 --漫漫算法路 小结篇
- 用几个数字任意组合成最大数
- 设备树
- JDWP 协议介绍
- 解决iOS工程被Xcode识别成Mac工程的问题
- Django实现文件下载
- Jupyter Notebook Mammuals
- 剑指offer(2)—替换空格
- ThinkPHP框架下成功、错误模板页面修改