【LeetCode】NO.509. 斐波那契数(C++ & Python) [动态规划]
题目:509. 斐波那契数
斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和
代码
python NO.1
class Solution:
def fib(self, n: int) -> int:
# 考虑使用动态规划做
if n<=1:
return n
dp = [0]*(n+1)
dp[0] = 0
dp[1] = 1
for i in range(2, n+1):
dp[i] = dp[i-1] + dp[i-2]
return dp[-1]
空间复杂度:O(n)
时间复杂度:O(n)
class Solution:
def fib(self, n: int) -> int:
if n<=1:
return n
dp = [0]*(n+1)
dp[0] = 0
dp[1] = 1
sum = 0
for i in range(2, n+1):
sum = dp[0] + dp[1]
dp[0]=dp[1]
dp[1] = sum
return dp[1]
空间复杂度:O(1)
时间复杂度:O(n)
本文来自博客园,作者:jucw,转载请注明原文链接:https://www.cnblogs.com/Jucw/p/15752963.html