考点:
注意返回值为 long long 型,高效率
1 递归
缺点:
耗费时间,为什么耗费时间?
要重复计算一个值多次,并且多次调用函数需要 开辟自己的栈帧空间
时间复杂度:O(fib(n))
空间复杂度:O(n)
long
long
fib(
int
n)
{
if
(n
<=
0)
return
0;
if
(n
==
1
||
n==
2)
{
return
1;
}
return
fib(n-1)
+
fib(n-2);
}
2 循环
优点:效率高
时间复杂度O(n)
空间复杂度O(1)
long
long
fib(
int
n)
{
if
(n
<=
0)
return
0;
if
(n
==
1
||
n==
2)
{
return
1;
}
return
fib(n-1)
+
fib(n-2);
}
3 公式
时间复杂度:O(lgN)