《剑指offer》7.斐波那契数列

题目地址:https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160&rp=4&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

解题思路:两种解法:(1)常规递归解法:但是时间复杂度会很高,O(2^n),空间复杂度O(n)。

public class Solution {
    public int Fibonacci(int n) {
        if(n<=0)
            return 0;
        else if(n<3)
            return 1;
        else
            return Fibonacci(n-1)+Fibonacci(n-2);
    }
}

(2)循环,时间复杂度为O(n),空间复杂度 为O(1)。

public class Solution {
    public int Fibonacci(int n) {
        if(n<=0)
            return 0;
        if(n==1||n==2)
            return 1;
        int f1 = 1,f2 = 1;
        for(int i=3;i<=n;i++){
            int f3 = f1+f2;
            f1 = f2;
            f2 = f3;
        }
        return f2;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_28900249/article/details/89277793