算法思想:递归&分治&回溯
数论思想:利用数学公式或者定理或者规律求解问题
斐波那契数列:f(n)=f(n-1)+f(n-2)
递归的时间复杂度:O(2^n)(当n=45时,计算时间约5s)
递归的空间复杂度:T(2^n)
优化:
1. 因为递归树的计算中有很多重复计算但又无法省略的节点,因此要想一种方法,把重复计算的部分存储起来,以便调用。
2. 尾递归:被调用的函数一定出现在末尾(return中),利用编译器的特性,将计算步骤存储在栈中(因为已经是return步骤了,就不会新开内存)。其实就是“倒着算”
阶层的尾递归:
斐波那契尾递归: