LeetCode/509. 斐波那契数
509. 斐波那契数
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
1 | F(0) = 0,F(1) = 1 |
给你 n ,请计算 F(n) 。
示例 1:
1 | 输入:2 |
示例 2:
1 | 输入:3 |
示例 3:
1 | 输入:4 |
提示:
0 <= n <= 30
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:
本题思路比较简单,递归的思想大家肯定都会,但是递归方法时间复杂度是指数级别,直接爆炸,我们利用动态规划的思想,将时间复杂度控制在线性级别,具体思想就是创建一个数组,用来存放以前计算过的状态,下次取出上次计算状态就可以,不用进行递归遍历。
具体代码如下:
1 | class Solution { |
当然,这里的数组还能进行空间的压缩,看到我们每次状态转移只需要三个变量,即当前状态只与之前的两个状态有关。
具体代码如下:
1 | class Solution { |

