【剑指offer】面试题10- II:青蛙跳台阶问题(Java)
初始化一个动态规划数组dp,其中dp[i]表示跳到第i级台阶的总方法数。 设置dp[0] = 1,dp[1] = 1。 从i=2到n,计算dp[i] = (dp[i-1] + dp[i-2]) % MOD,其中MOD是1e9+7。 返回dp[n]。
发布日期:2021-04-30 21:06:19
浏览次数:90
分类:精选文章
本文共 720 字,大约阅读时间需要 2 分钟。
一只青蛙可以跳1级或者2级台阶,求它跳到n级台阶的总方法数。这个问题可以通过动态规划来解决。
当n等于0或1时,只有一种方法:青蛙不跳或只跳一步。因此,结果都是1。
对于n大于等于2的情况,青蛙可以从n-1级跳1级到达n级,或者从n-2级跳2级到达n级。因此,到达n级的总方法数等于到达n-1级和n-2级的总方法数之和。
我们可以通过以下步骤解决这个问题:
例如:
- 当n=2时,dp[2] = dp[1] + dp[0] = 1 + 1 = 2。
- 当n=7时,dp[7] = dp[6] + dp[5] = 13 + 8 = 21。
代码如下:
class Solution { public int numWays(int n) { if (n == 0 || n == 1) { return 1; } int[] dp = new int[n + 1]; dp[0] = 1; dp[1] = 1; for (int i = 2; i <= n; i++) { dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007; } return dp[n]; }} 发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2026年06月11日 17时06分37秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
pip 无法从 requirements.txt 安装软件包
2023-03-02
pip/pip3更换国内源
2023-03-02
pip3 install PyQt5 --user 失败
2023-03-02
pip3命令全解析:Python3包管理工具的详细使用指南
2023-03-02
PIPE 接口信号列表
2023-03-02
pipeline配置与管理Job企业级实战
2023-03-02
pipeline项目配置实战
2023-03-02
Pipenv 与 Conda?
2023-03-02
QVGA/HVGA/WVGA/FWVGA分辨率屏含义及大小//Android虚拟机分辨率
2023-03-02
pipy国内镜像的网址
2023-03-02
quiver绘制python语言
2023-03-02
pip下载缓慢
2023-03-02
PIP使用SSH从BitBucket安装自定义软件包,无需输入SSH密码
2023-03-02
pip在安装模块时提示Read timed out
2023-03-02
pip更换源
2023-03-02
SpringBoot之Banner源码深度分解
2023-03-02
Pix2Pix如何工作?
2023-03-02