【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)

posted @ 2021-12-31 14:22  jucw  阅读(59)  评论(0编辑  收藏  举报