题解 | #斐波那契数列#

斐波那契数列

http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3

//递归:时间复杂度O(2^n),空间复杂度O(栈的空间)
public class Solution {
    public int Fibonacci(int n) {
        if(n==1||n==2)
            return 1;
        else
            return Fibonacci(n-1)+Fibonacci(n-2);
    }
}
//将已经存在的项保存在map中,不再重复计算
//时间复杂度O(n),空间复杂度O(n)
import java.util.*;
public class Solution {
    Map<Integer,Integer> map = new HashMap<Integer,Integer>();
    public int Fibonacci(int n) {
        if(n==1||n==2)
            return 1;
        if(map.containsKey(n))
            return map.get(n);
        else{
            map.put(n,Fibonacci(n-1)+Fibonacci(n-2));
            return map.get(n);
        }
    }
}
//时间复杂度O(n),空间复杂度O(1)
public class Solution {
    public int Fibonacci(int n) {
        if(n==1||n==2)
            return 1;
        int a = 1,b=1,c =0;
        for(int i=3;i<=n;i++){
            c = a+b;
            a =b;
            b =c;
        }
        return c;
    }
}
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务