Every day a leetcode
题目来源:509. 斐波那契数
解法1:递归
代码:
/*
* @lc app=leetcode.cn id=509 lang=cpp
*
* [509] 斐波那契数
*/
// @lc code=start
class Solution
{
public:
int fib(int n)
{
if (n == 0)
return 0;
if (n == 1)
return 1;
return fib(n - 1) + fib(n - 2);
}
};
// @lc code=end
结果:
复杂度分析:
时间复杂度:O(2n)。总的调用次数结果是2n-1-1。
空间复杂度:O(n)。fib(n-1)一路沿fib(2)返回后消毁栈帧,调用fib(n-2)并建立栈帧后,实际上 fib(n-2)与fib(n-1)用的是同一块栈帧空间。
解法2:
其他解法见于官方题解Leetcode509. 斐波那契数。