366.Fibonacci-斐波纳契数列(入门题)
来源:互联网 发布:淘宝推广方式 编辑:程序博客网 时间:2024/06/15 05:03
斐波纳契数列
题目
查找斐波纳契数列中第 N 个数。
所谓的斐波纳契数列是指:
前2个数是 0 和 1 。
第 i 个数是第 i-1 个数和第i-2 个数的和。
斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 …
样例
给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。
题解
1、迭代法(T(n)=O(n),S(n)=O(1))
class Solution { /** * @param n: an integer * @return an integer f(n) */ public int fibonacci(int n) { int a = 0; int b = 1; for (int i = 0; i < n - 1; i++) { int c = a + b; a = b; b = c; } return a; }}
2、递归法(会报Time Limit Exceeded错误,但是递归思想要掌握。T(n)=O(n32 ),S(n)=O(1))
class Solution { /** * @param n: an integer * @return an integer f(n) */ public int fibonacci(int n) { if (n == 1 || n == 2) { return n-1; } else { return fibonacci(n-2) + fibonacci(n-1); } }}
3、数组法(T(n)=O(n),T(n)=O(n))
class Solution { /** * @param n: an integer * @return an integer f(n) */ public int fibonacci(int n) { if (n == 1 || n == 2) { return n-1; } int[] arr = new int[n]; arr[0] = 0; arr[1] = 1; for (int i = 2;i < n;i++) { arr[i] = arr[i-1] + arr[i-2]; } return arr[n-1]; }}
Last Update 2016.8.11
0 0
- 366.Fibonacci-斐波纳契数列(入门题)
- 斐波纳契数列(Fibonacci)
- 蓝桥杯 入门训练 Fibonacci数列(1)
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 入门训练 Fibonacci数列
- 自定义Dialog点击弹框外的区域无法关闭问题
- 数据结构 并查集 HDU 1213
- POJ 1797 Heavy Transportation 【最大生成树,Prime】
- IQKeyboardManager 详解
- 基于分布特征的神经网络手写字母识别
- 366.Fibonacci-斐波纳契数列(入门题)
- 【51】构建乘积数组
- Android开发——AsyncTask的使用以及源码解析
- 模拟栈问题(思路)
- IOS masonry动画
- Activiti 查看流程历史记录
- 【HDU 2181】哈密顿绕行世界问题(DFS)
- 完全背包问题----思想的理解
- Spring容器中Bean的作用域之singleton和prototype