面试题 08.01. 三步问题

分析:
赋初值本质:状态转移需要状态依赖,防止下标越界
分析题目,建立初始状态:
到第i阶楼梯有f[i]种方式
答案:
f[n]
状态转移:
f[i] = f[i-1] + f[i-2] + f[i-3]
这里需要考虑到n小于等于3的时候,f[0]=1, f[1]=1,f[2]=2
代码:
class Solution(object): def waysToStep(self, n): """ :type n: int :rtype: int """ # 到i阶楼梯有f[i]种方式 # f[n] # f[i]=f[i-1]+f[i-2]+f[i-3] if n < 3 : return n f=[0 for i in range(n+1)] f[0]=1 f[1]=1 f[2]=2 for i in range(3,n+1): f[i]=(f[i-1]+f[i-2]+f[i-3])%1000000007 return f[-1]

浙公网安备 33010602011771号