LintCode题解之斐波纳契数列
2017-11-26 03:48
302 查看
直接使用递归的方法会导致TLE,加个缓存就好了:
public class Solution { private Integer[] buff = new Integer[1000]; /* * @param n: an integer * @return: an ineger f(n) */ public int fibonacci(int n) { if(buff !=null) return buff ; else if(n==1) return buff[1] = 0; else if(n==2) return buff[2] = 1; else return buff = fibonacci(n-1) + fibonacci(n-2); } }
或者使用迭代法:
public class Solution { /* * @param n: an integer * @return: an ineger f(n) */ public int fibonacci(int n) { if(n==1) return 0; else if(n==2) return 1; int a=0, b=1, c=a+b; n-=2; while(n-->0){ c = a + b; a = b; b = c; } return c; } }
题目来源: http://www.lintcode.com/zh-cn/problem/fibonacci/
相关文章推荐
- Lintcode190 Next Permutation II solution 题解
- LintCode 第366题 斐波纳契数列 【枚举法】
- Lintcode183 Wood Cut solution 题解
- LintCode 366. 斐波纳契数列
- lintcode 容易题:Fibonacci 斐波纳契数列
- LintCode【入门】斐波纳契数列
- LintCode题解之子树
- Lintcode 74 First Bad Version solution 题解
- Lintcode156 Merge Intervals solution 题解
- 剑指offer 面试题18: 树的子结构(LintCode 245.Subtree) 题解
- LintCode--斐波纳契数列
- Lintcode136 Palindrome Partitioning solution 题解
- Lintcode141 Sqrtx solution 题解
- LintCode入门练习——366. 斐波纳契数列
- LintCode(斐波纳契数列)!
- LintCode_366_斐波纳契数列
- 【LintCode-366】斐波纳契数列 (Java实现)
- LintCode入门练习——366. 斐波纳契数列
- LintCode 数字组合 题解
- 斐波纳契数列-LintCode