LintCode题解之斐波纳契数列
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode题解之斐波纳契数列相关的知识,希望对你有一定的参考价值。
直接使用递归的方法会导致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[n]!=null) return buff[n]; else if(n==1) return buff[1] = 0; else if(n==2) return buff[2] = 1; else return buff[n] = 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/
以上是关于LintCode题解之斐波纳契数列的主要内容,如果未能解决你的问题,请参考以下文章