Problem:
求斐波那契数列的第 n 项,n <= 39。
Intuition:
斐波那契数列很适合使用动态规划来求解,它在数学上是使用递归来定义的,公式为F(n) = F(n-1) + F(n-2).
使用动态规划来将重复计算的结果具有”记忆性”,就可以将时间复杂度降低为O(n).
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Solution {
private int[] fib = new int[40];
public Solution() { fib[0]=1; fib[1] = 1; for (int i = 2; i < fib.length; i++) fib[i] = fib[i - 1] + fib[i - 2]; }
public int Fibonacci(int n) { return fib[n]; } }
|