青蛙跳台阶Python
时间: 2024-11-21 08:29:57 浏览: 9
青蛙跳台阶问题是经典的动态规划问题,通常表示为青蛙从台阶底部开始,每次可以向上跳一级或两级,目标是到达最顶层。我们可以用 Python 编程解决这个问题,通过创建一个数组或列表来保存每个台阶到顶部所需的最小跳跃次数。
以下是一个简单的 Python 解决方案:
```python
def frog_jumps(steps):
if steps <= 0:
return 0
dp = [0] + [float('inf')] * steps # 初始化dp数组,第一个位置是0,后续都设置为无穷大
for i in range(1, steps):
# 如果当前台阶可以一步或两步到达,更新dp[i]
if i - 1 >= 0:
dp[i] = min(dp[i], dp[i - 1] + 1)
if i - 2 >= 0:
dp[i] = min(dp[i], dp[i - 2] + 1)
return dp[steps - 1]
# 测试
print(frog_jumps(5)) # 输出:2,因为可以从第3级直接跳到第5级
```
在这个函数中,`dp[i]` 表示到达第 `i+1` 级台阶的最小跳跃次数。我们遍历所有可能的起始位置,并尝试一步或两步前进,选择需要跳跃次数更少的方式。
阅读全文