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