leetcode中如何解决爬楼梯问题
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下leetcode中如何解决爬楼梯问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目链接https:/
千家信息网最后更新 2025年12月02日leetcode中如何解决爬楼梯问题
小编给大家分享一下leetcode中如何解决爬楼梯问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
题目链接
https://leetcode-cn.com/problems/climbing-stairs/
题目描述
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
解题方案
第一种思路
标签:数学
如果观察数学规律,可知本题是斐波那契数列,那么用斐波那契数列的公式即可解决问题,公式如下:

时间复杂度:O(logn)
第一种思路代码
Java版本
class Solution {
public int climbStairs(int n) {
double sqrt_5 = Math.sqrt(5);
double fib_n = Math.pow((1 + sqrt_5) / 2, n + 1) - Math.pow((1 - sqrt_5) / 2,n + 1);
return (int)(fib_n / sqrt_5);
}
}
JavaScript版本
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
const sqrt_5 = Math.sqrt(5);
const fib_n = Math.pow((1 + sqrt_5) / 2, n + 1) - Math.pow((1 - sqrt_5) / 2,n + 1);
return Math.round(fib_n / sqrt_5);
};
第二种思路
标签:动态规划
本问题其实常规解法可以分成多个子问题,爬第n阶楼梯的方法数量,等于2部分之和
爬上n-1阶楼梯的方法数量。因为再爬1阶就能到第n阶
爬上n-2阶楼梯的方法数量,因为再爬2阶就能到第n阶
所以我们得到公式dp[n] = dp[n-1] + dp[n-2]
同时需要初始化
dp[0]=1和dp[1]=1时间复杂度:O(n)
第二种思路代码
Java版本
class Solution {
public int climbStairs(int n) {
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];
}
return dp[n];
}
}
JavaScript版本
/**
* @param {number} n
* @return {number}
*/
var climbStairs = function(n) {
const dp = [];
dp[0] = 1;
dp[1] = 1;
for(let i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp[n];
};
画解
以上是"leetcode中如何解决爬楼梯问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
楼梯
方法
问题
思路
楼顶
版本
公式
数量
篇文章
复杂
代码
内容
复杂度
数列
数学
时间
标签
示例
题目
解释
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
不上数据库的期刊查重
网络安全包括那些方面
吉林服务器电源报价多少钱
智慧财务数据库连接失败
web 读取数据库
数据库查询工作原理
西安网络技术安全培训机构
家庭电影服务器
网络安全 网络文明手抄报
我的世界服务器主城出生点怎么建
大专学软件开发是什么专业的
建邺区智能化软件开发
国家网络安全法治宣传周的日期
中兴通讯服务器
丰台区运营网络技术软件
搭建数据库允许外网访问
加强网络安全管理乡镇方案
网络安全知识小学生的感想
现代软件开发公司的网络设计
怎么缩小数据库文件大小
网络安全是为了保障
web查数据库响应慢
91助手怎么导出数据库
网络安全大会门票
ntp服务器版本号
数据库可以卸载干净么
智能手表软件开发流程
服务器安全组怎么打开
花都小程序软件开发设计
介休租房网络安全