剑指offer(8):斐波那契数列
来源:互联网 发布:钢笔字帖知乎推荐 编辑:程序博客网 时间:2024/05/01 12:29
题目描述:
写一个函数,要求输入一个整数n,输出斐波那契数列的第n项。定义
常规思路:
直接使用递归调用生成第n项,但是造成了多次的重复调用,效率非常低下。
递归代码为:
public int Fibonacci(int n) { if(n <= 0) return 0; if(n == 1) return 1; return Fibonacci(n - 1) + Fibonacci(n - 2);}
推荐解法:
循环修改递归,保存每一步计算的第n-1项,用于后面的计算。
牛客AC代码:
public int Fibonacci(int n) { if (n <= 0) return 0; if (n <= 2) return 1; long fib1 = 1, fib2 = 1, fibn = 0; for (int i = 3; i <= n; i++) { fibn = fib1 + fib2; fib1 = fib2; fib2 = fibn; } return fibn; }
参考
1. 何海涛,剑指offer名企面试官精讲典型编程题(纪念版),电子工业出版社
0 0
- 剑指offer(8):斐波那契数列
- 【剑指offer】斐波那契数列
- 剑指offer--斐波那契数列
- 剑指Offer-斐波那契数列
- 剑指offer:斐波那契数列
- 《剑指offer》斐波那契数列
- 剑指 offer:斐波那契数列
- 【剑指Offer】斐波那契数列
- 剑指offer 斐波那契数列
- 【剑指offer】斐波那契数列
- 剑指offer 斐波那契数列
- [剑指offer]斐波那契数列
- 剑指offer|斐波那契数列
- 【剑指offer】斐波那契数列
- 剑指offer--斐波那契数列
- 剑指Offer:斐波那契数列
- 《剑指Offer》斐波那契数列
- 剑指offer----斐波那契数列
- Android 属性动画(Property Animation) 完全解析 (上)
- 浅谈关系数据库和NoSql非关系数据库
- loadView 和 viewDidLoad、viewDidUnload
- mysql 5.0存储过程学习总结
- svn使用教程总结
- 剑指offer(8):斐波那契数列
- android 屏幕底部出现菜单
- Feescale K64开发笔记2: KDS的使用
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- UILabel文字重叠
- TRUNCATE TABLE 与 DELETE的区别
- Android 属性动画(Property Animation) 完全解析 (下)
- HTMl5的sessionStorage和localStorage
- sharepreference存储心得