斐波那契数列问题总结

  • n比较小的时候,可以直接使用递归法来求解,不做任何记忆化操作,时间复杂度是O(2^n),存在很多冗余计算;
  • 一般情况下,可以使用“记忆化搜索”(即动态规划)或者迭代的方法,实现这个转移方程,时间复杂度和空间复杂度都可以做到O(n);
  • 为了优化空间复杂度,可以不保存f(x-2)之前的项,我们只用两个变量来维护f(x-1)和f(x-2),这样就可以把时间复杂度优化到O(1);
  • 随着n的不断增大,O(n)可能已经不能满足我们的需要了,我们可以用“矩阵快速幂”的方法把算法加速到O(logn);
  • 也可以利用斐波那契数列的通项公式,直接把n代入通项公式中计算;

你可能感兴趣的:(LeetCode)