【Leetcode】python - [70] Climbing Stairs 個人解法筆記

題目出處

70. Climbing Stairs

難度

easy

個人範例程式碼

class Solution:
    def climbStairs(self, n: int) -> int:
        # dp[i] = dp[i-1] + dp[i-2]
        if n == 0:
            return 0

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

        return dp[-1]

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

算法說明

利用 dp[i] = dp[i-1] + dp[i-2]

input handling

處理開頭 i = 0 的情況,return 0
i = 1, return 1
i = 2, return 2

Boundary conditions

控制 for-loop 的範圍

Reference