在Python中查找我们可以攀登楼梯的方式有多少种
假设我们有一个有n个台阶的楼梯,我们可以一次攀登1或2个台阶。我们必须定义一个函数,返回我们可以攀登楼梯的独特方法数。
步骤的顺序不应改变,因此每个不同的步骤顺序都算作一种方式。如果答案非常大,则将结果对10 ^ 9 + 7进行取模。
因此,如果输入为n = 5,则输出将为8,因为有8种独特的方式 –
- 1,1,1,1,1
- 2,1,1,1
- 1,2,1,1
- 1,1,2,1
- 1,1,1,2
- 1,2,2
- 2,1,2
- 2,2,1
要解决这个问题,我们将遵循以下步骤 –
- dp:大小为n + 1的数组,并用0填充
- dp [1]:= 1
- 对于i从2到n + 1,执行以下操作
- dp [i]:= dp [i-1] + dp [i-2]
- 返回dp的最后一个元素mod m
让我们看一下以下实现以更好地理解-
更多Python相关文章,请阅读:Python 教程
例子
m =(10 ** 9)+ 7
class Solution:
def solve(self,n):
dp = [0 for _ in range(n + 2)]
dp [1] = 1
for i in range(2,n + 2):
dp [i] = dp [i-1] + dp [i-2]
return dp [-1]%m
ob = Solution()
print(ob.solve(5))
输入
5
输出
8