LeetCode面試題 08.01. 三步問題(簡單,動態規劃,python)

1. 題目

三步問題。有個小孩正在上樓梯,樓梯有n階臺階,小孩一次可以上1階、2階或3階。實現一種方法,計算小孩有多少種上樓梯的方式。結果可能很大,你需要對結果模1000000007。

示例1:

 輸入:n = 3 
 輸出:4
 說明: 有四種走法

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/three-steps-problem-lcci
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

2. 解題思路

記錄 dp1 爲走1步到達當前階梯的走法;同理,dp2爲走2步;dp3爲走3步。

class Solution:
    def waysToStep(self, n: int) -> int:
        dp1 = 1
        dp2 = 0
        dp3 = 0
        for i in range(1,n+1):
            dp = (dp1 + dp2 + dp3)%(1000000007)
            dp3 = dp2
            dp2 = dp1
            dp1 = dp
        return dp1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章