题解 | #斐波那契数列#

斐波那契数列

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

方案一:迭代

缺省。

方案二:递归

import java.util.*;

public class Solution {
    public int Fibonacci(int n) {
        // write code here
        if (n < 2) {
            return n;
        }
        return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
}

复杂度分析:

  • 时间复杂度:O(2^n)
  • 空间复杂度:O(n)

方案三:动态规划

import java.util.*;

public class Solution {
    public int Fibonacci(int n) {
        // write code here
        if (n <= 1) {
            return n;
        }
        int[] fib = new int[n + 1];
        fib[0] = 0;
        fib[1] = 1;
        for (int i = 2; i < fib.length; i++) {
            fib[i] = fib[i - 1] + fib[i - 2];
        }
        return fib[n];
    }
}

复杂度分析:

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
全部评论

相关推荐

ResourceUtilization:我嘞个董事长
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务