在Python中查找我们可以攀登楼梯的方式有多少种

在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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程