一、递归实现
时间复杂度:O(2^n)
空间复杂度:O(1)
public int Fibonacci(int n) { if (n <= 1) { return n; } return Fibonacci(n - 1) + Fibonacci(n - 2); }
二、动态规划
时间复杂度:O(n)
空间复杂度:O(1)
public int Fibonacci(int n) { int first, second = 0, sum = 1; for (int i = 1; i <= n; i++) { first = second; second = sum; sum = first + second; } return second; }