java斐波那契数列(Fibonacci sequence)的三种方式:递归,备忘录,动态规划
1.最常使用的是递归,就是从上往下寻找答案,然后在返回来。
2.备忘录也是从上往下,只是去掉了递归中重复计算的部分,因为它使用一个容器来装已经计算出的值,这里就多一个判断,如果计算过该式子,就直接取结果,如果没计算过才计算出来。
3.动态规划就是从下往上依次算出结果。
这个从下往上和从上往下解释如下:(我拿递归和动态规划来说明这个顺序问题)
例如:
f(4)=f(2)+f(3);
f(3)=f(1)+f(2);
f(2)=1;
f(1)=1;
求解f(4)
如果我们顺序直接就是从f(4)开始往下一步一步求解到f(1)(再从f(1)往回计算出来f(4)),就是递归
如果我们顺序直接就是从f(1)开始往上一步一步求解到f(4),就是从下往上,就是动态规划