【Leetcode】python - [509] Fibonacci Number 個人解法筆記

題目出處

509. Fibonacci Number

難度

Easy

個人範例程式碼

class Solution:
    def fib(self, n: int) -> int:

        dp = [0 for _ in range(n+1)]

        # define
        for i in range(n+1):
            # init
            if i == 0:
                dp[i] = 0
            elif i == 1:
                dp[i] = 1
            else: # define
                dp[i] = dp[i-1] + dp[i-2]

        return dp[-1]

最近在練習程式碼本身就可以自解釋的 Coding style,可以嘗試直接閱讀程式碼理解

算法說明

基本的經典費波納契數列問題。

  • 主定義: dp[i] = dp[i-1] + dp[i-2]
  • 初始化:
    • dp[0] = 0
    • dp[1] = 1
  • input handling

    都在 for 裡面處理

    Boundary conditions

    for 來控制範圍,「注意當題目問 n 時,我們需要宣告 n + 1

    例:要求 dp(2), 共需要 0, 1, 2,三個位置。

    Reference