青蛙跳台阶python123
时间: 2024-12-31 22:43:42 浏览: 7
### Python 实现青蛙跳台阶算法
对于给定的n级台阶,青蛙每次可以选择跳1级或2级。因此,当考虑到达第n级台阶的方法数量时,可以从以下两种情况得出结论:
- 如果最后一步跳跃的是1级,则剩余部分是从0至n-1的情况;
- 若最后一次跳跃覆盖了2级台阶,则其余路径对应于从起始位置到n-2的情形。
这两种情形相加即可得到总的可能方案数目。此逻辑实际上遵循着斐波那契序列模式[^3]。
下面展示了一个基于上述原理构建的有效解决方案,采用迭代而非递归来避免重复计算并提高效率:
```python
class Solution:
def numWays(self, n: int) -> int:
MOD = 10**9 + 7
prev, curr = 0, 1
for _ in range(n):
temp = (prev + curr) % MOD
prev = curr
curr = temp
return curr
```
这段代码定义了一个名为`Solution` 的类,其中包含了静态方法 `numWays()` 。该函数接收整数参数 `n` 表示目标台阶的高度,并返回达到该高度的不同方式的数量。为了防止数值过大溢出,在每一轮更新当前状态(`curr`)之前都会对结果取模运算。
通过循环结构逐步累加前两项的结果来获取最终答案,这种方法不仅提高了性能还简化了理解过程。此外,考虑到题目特殊要求,这里加入了取余操作以确保输出符合预期范围内的正整数值。
阅读全文