剑指Offer 2. 青蛙跳台阶问题
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模1e9+7(1000000007),如计算初始结果为:1000000008,请返回1
解题思路
类比于斐波那契数列的解法
f(x) 表示到x级台阶的方法数, 最后一步只能是一步或者两步,所以可以列出如下表达式
f(x) = f(x - 1) + f(x - 2)
当台阶只有一级的时候f(1) = 1, 显然f(0) = 0
所以我们可以用上面的递推式求出n级台阶的方法数
代码实现
func numWays(n int) int {
pre, cur, res := 0, 0, 1
for i := 1; i <= n; i++ {
pre = cur
cur = res
pre, cur= pre % (1e9 + 7), cur % (1e9 + 7)
res = pre + cur
res= res % (1e9 + 7)
}
return res
}
作者:醉曦
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】