Python3 세 단계 계단 질문
원제 주소 https://leetcode-cn.com/problems/three-steps-problem-lcci/
주제 :
세 단계 문제. 아이는 n 차 수준은 자녀가 1, 2, 3 차의 순서에있을 수 있습니다, 계단에가이다. 계단에 아이들이 얼마나 많은 방법으로 계산하는 방법을 구현합니다. 결과는 매우 클 수, 당신은 1,000,000,007 결과를 죽을 필요가있다.
예 1 :
输入:n = 3
输出:4
说明: 有四种走法
예 2 :
输入:n = 5
输出:13
문제 해결 :
class Solution:
def waysToStep(self, n: int) -> int:
if n==0:
return 0
if n==1:
return 1
if n==2:
return 2
if n==3:
return 4
# 本题用动态规划的思路解题,但是不需要n个数组空间,只需3个记录
e1 = 1
e2 = 2
e3 = 4
for i in range(4, n+1):
e4 = (e1 + e2 + e3)%1000000007 # 注意!取模一定要在这里就算好,而不是放到最后一步
e1 = e2
e2 = e3
e3 = e4
return e3