LeetCode 剑指 Offer 10- II. 青蛙跳台阶问题
初始化两个变量 处理边界情况:当 n=0 或 n=1 时,返回 1;当 n=2 时,返回 2。 对于 n>=3 的情况,使用循环从 3 到 n 计算每一步的方法数。 每次循环中,更新 返回最终的方法数 初始化常量:定义模数 处理边界情况:当 n=0 或 n=1 时,直接返回 1;当 n=2 时,返回 2。 循环计算:从 3 到 n 计算每一步的方法数。每次循环中,使用临时变量 返回结果:循环结束后,返回
发布日期:2025-06-19 11:05:20
浏览次数:4
分类:精选文章
本文共 772 字,大约阅读时间需要 2 分钟。
为了解决这个问题,我们需要计算一只青蛙跳上 n 级台阶的总方法数。青蛙可以每次跳 1 级或者 2 级台阶。我们需要找到所有可能的跳法,并对结果取模 1e9+7。
方法思路
这个问题可以通过动态规划来解决。我们可以利用斐波那契数列的特性来简化计算,因为每次跳台阶的方法数等于前一次跳 1 级和前一次跳 2 级的方法数之和。
具体步骤如下:
x 和 y,分别表示跳到 n-2 级和 n-1 级的方法数。y 为 x + y 并取模 1e9+7。y。解决代码
int numWays(int n) { const int mod = 1e9 + 7; if (n < 2) return 1; if (n == 2) return 2; int x = 1, y = 2; for (int i = 3; i <= n; ++i) { int tmp = y; y = (x + y) % mod; x = tmp; } return y;} 代码解释
mod 为 1e9+7。tmp 存储旧的 y 值,然后更新 y 为 x + y % mod。y,即跳到 n 级台阶的总方法数。这种方法的时间复杂度是 O(n),空间复杂度是 O(1),非常高效。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2026年05月30日 03时36分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RabbitMQ集群 - 普通集群搭建、宕机情况
2023-03-01
php如何正确的获得文件的后缀名
2023-03-01
PHP如何生成唯一的数字ID
2023-03-01
PHP如何获取当前页面的最后修改时间
2023-03-01
PHP如何读取json数据
2023-03-01
PHP字符串
2023-03-01
PHP字符串递增
2023-03-01
php学习之基础语法
2023-03-01
RabbitMQ集群 - 仲裁队列、Raft协议(最详细的选举流程)
2023-03-01
PHP学习总结(11)——PHP入门篇之WAMPServer多站点配置
2023-03-01
PHP学习总结(12)——PHP入门篇之变量
2023-03-01
PHP学习总结(13)——PHP入门篇之常量
2023-03-01
PHP学习总结(14)——PHP入门篇之常用运算符
2023-03-01
PHP学习总结(1)——PHP入门篇之PHP可以做什么?
2023-03-01
PHP学习总结(2)——PHP入门篇之PHP代码标识
2023-03-01
PHP学习总结(3)——PHP入门篇之PHP的echo语句
2023-03-01
PHP学习总结(4)——PHP入门篇之PHP计算表达式
2023-03-01
PHP学习总结(5)——PHP入门篇之PHP字符串
2023-03-01
PHP学习总结(6)——PHP入门篇之PHP语句结束符
2023-03-01
PHP学习总结(7)——PHP入门篇之PHP注释
2023-03-01