題目出處
難度
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,三個位置。