法一:
运用递归的方式,第一次走一阶或者两阶,第二次也可以走一阶或者两阶。
终止情况是n=1或n=2;
但这种方法的时间复杂度比较大。因为它存在重复计算的问题。
如图,f(3)会重复求解多次。
法2:将f(3)等放入hashmap表中,若为f(3)则直接查找调用就行。
如果hashmap中有,则直接调用,若无,则将其放入hashmap中。
法3.前两种都是用递归的方法,第三种是非递归的方法。
由图可知,可用循环的方法进行解答
代码如下:
斐波那契数列的定义如下:
法一:
运用递归的方式,第一次走一阶或者两阶,第二次也可以走一阶或者两阶。
终止情况是n=1或n=2;
但这种方法的时间复杂度比较大。因为它存在重复计算的问题。
如图,f(3)会重复求解多次。
法2:将f(3)等放入hashmap表中,若为f(3)则直接查找调用就行。
如果hashmap中有,则直接调用,若无,则将其放入hashmap中。
法3.前两种都是用递归的方法,第三种是非递归的方法。
由图可知,可用循环的方法进行解答
代码如下:
斐波那契数列的定义如下: