题解 | #斐波那契数列#
斐波那契数列
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)