程序查找用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

  • 对于范围2到n + 1的i

    • dp [i]:= dp [i-1] + dp [i-2]

  • 返回dp mod m的最后一个元素

让我们看下面的实现以更好地理解-

示例

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
猜你喜欢