斐波那契数列

来源:互联网 发布:淘宝怎么加好友 编辑:程序博客网 时间:2024/05/19 20:38
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39

//刚开始想使用递归算法public class Solution {    public int Fibonacci(int n) {     if(n<=1) return n;else return Fibonacci(n-1)+Fibonacci(n-2);    }}//但是空间复杂度和时间复杂度过高,导致溢出//然后开始想着用动态规划的算法public class Solution {    public int Fibonacci(int n) {        int a=0,b=1;        if(n<=1) return n;        int t=1;        while(t<n){            if(a>b) b=a+b;            else a=a+b;            ++t;        }return a>b?a:b;    }}//然后不信邪,递归用下简单的备忘录的想法public class Solution {    private int flag[];    public int Fibonacci(int n) {        flag=new int[n+1];        return f(n);    }    public int f(int n){        if(n<=1){flag[n]=n;return n;}        flag[n]=((flag[n-1]!=0)?flag[n-1]:f(n-1))+((flag[n-2]!=0)?flag[n-2]:f(n-2));        return flag[n];    }}//感觉好麻烦啊!



1 0
原创粉丝点击