leetcode中如何解决爬楼梯问题
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,小编给大家分享一下leetcode中如何解决爬楼梯问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目链接https:/
千家信息网最后更新 2025年02月05日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安全错误
数据库的锁怎样保障安全
北京网络安全工程师平均工资
公司邮箱接收服务器地址怎么查看
网络安全组织协调机构
制作的数据库不可用怎么办
进入游戏所选的服务器在哪看
惠敏软件开发
魔兽鲜血熔炉服务器
手机管理云服务器的软件
服务器ip未备案是什么意思
深圳免费版进销存软件开发
银行软件开发是什么工作
bmc 软件开发
统计年鉴数据库
力控Db数据库
普游互联网科技贵州安顺
网络技术职位概述
怎么转行到软件开发
数据库结构有哪些
如何解决数据库备份问题
沈阳游戏服务器诚信企业
苏州网络安全
大话西游2能转换服务器吗
云服务器存储和本地保险哪个好
ftb服务器如何搜索
怀旧服什么服务器能下载
新乡市信易网络技术有限公司
趣话网络安全传输协议
湘潭跑腿app软件开发费用
xlsx导入数据库代码
福建ios应用软件开发