LeetCode 509 - 斐波那契数
August 13, 2021
简单题目描述
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n ,请计算 F(n) 。
Python题解
个人题解:递归
class Solution(object):
def fib(self, n):
"""
:type n: int
:rtype: int
"""
def getfn(n):
if n == 0 or n == 1:
return n
else:
return getfn(n - 1) + getfn(n - 2)
return getfn(n)
python
官方题解:动态规划
class Solution(object):
def fib(self, n):
"""
:type n: int
:rtype: int
"""
if n < 2:
return n
p, q, r = 0, 0, 1
for _ in range(1, n):
p, q = q, r
r = p + q
return r
python
总结
经典递归,没啥说的。
动态规划,时间复杂度:O(n),空间复杂度:O(1),不错的思路。