【lc刷题】509 斐波那契数(DP)_Day18(62/300)

62/300

  1. 斐波那契数
     
    斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
     
    F(0) = 0, F(1) = 1
    F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
    给定 N,计算 F(N)。
     
    示例 1:
     
    输入:2
    输出:1
    解释:F(2) = F(1) + F(0) = 1 + 0 = 1.
    示例 2:
     
    输入:3
    输出:2
    解释:F(3) = F(2) + F(1) = 1 + 1 = 2.
    示例 3:
     
    输入:4
    输出:3
    解释:F(4) = F(3) + F(2) = 2 + 1 = 3.
     
    提示:
     
    0 ≤ N ≤ 30

跟70 爬楼梯(DP)除了初始值,其他一模一样,里面有图,可点进去食用。

class Solution:
    def fib(self, N: int) -> int:
        a = 0 ; b = 1
        for _ in range(N):
            a, b = b, a+b
        return a

在这里插入图片描述

经典DP:

class Solution:
    def fib(self, N: int) -> int:
        if N == 0:return 0
        memo = [0]*(N+1)
        memo[1] = 1
        for i in range(2,N+1):
            memo[i] = memo[i-1] + memo[i-2]
            
        return memo[-1]

【lc刷题】509 斐波那契数(DP)_Day18(62/300)_第1张图片

你可能感兴趣的:(Leetcode)