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