leetcode 70: 爬楼梯

LeetCode算法题70:爬楼梯解析 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 ... 阅读详情

题目描述:
假设你正在爬楼梯。需要 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 阶
思路1:
利用递归和记忆化的结合:
f(n) = f(n-1)+f(n-2)
f(0) = 1
f(1) = 1
类似于斐波那契数列,但是这种方法的时间复杂度较高,因为进行类递归。
思路2:
动态规划:采用递归和记忆化的方式可以解决的问题,一般都可以通过dp的方式解决。
dp解决问题的两个关键点:
(1)dp状态的定义,非常重要,决定了问题是否好解,以及(2)是否易得
(2)dp的状态转移方程
本题的代码为:

class Solution:
    def climbStairs(self, n: int) -> int:
        f = [-1] * (n+1)
        f[0] = 1
        f[1] = 1
        for i in range(2, n+1):
            f[i] = f[i-1] + f[i-2]
        return f[n]

时间复杂度为:O(n) 空间复杂度也为O(n),因为使用了一个数组。
为了简化空间复杂度为O(1)可以改为:

class Solution:
    def climbStairs(self, n: int) -> int:
        a = 1
        b = 1
        for i in range(2, n+1):
            a, b = a+b, a 
        return a
【简单】力扣算法题解析LeetCode70:爬楼梯 爬楼梯问题要求计算爬到第 n 阶台阶的方法数,每次可爬 1 或 2 阶。通过动态规划,将问题转化为斐波那契数列:dp[i] = dp[i-1] + dp[i-2]。初始条件为 dp[1]=1,dp[2]=2。优化空间复杂度至 O(1),仅用两个变量滚动更新。Java 实现通过循环计算,最终返回 prev2 作为结果。时间复杂度 O(n),空间复杂度 O(1),适用于 n 较大时的高效求解。 阅读详情

相关推荐

LeetCode 第70题:爬楼梯

通过这次的算法探险,我们学会了如何优雅地解决爬楼梯的问题。这个“爬楼梯”的问题虽然看似简单,却涉及到了许多有趣的细节。通过详细的讲解和示例,我们深入理解了动态规划在解决爬楼梯问题中的应用。希望这篇文章能帮你更好地理解这道题目,如果有任何问题,欢迎留言讨论。

Gemini的博客 193

Leetcode70(力扣70):爬楼梯

特别经典的一道动态规划问题 class Solution { public: int climbStairs(int n) { if(n==1) return 1; if(n==2) return 2; vector<int> dp(n,0); dp[0]=1; dp[1]=2; for(int i=2;i<n;i++) { dp[i]=dp[i-1]+dp[i-

weixin_44537258的博客 203

保姆级教程:在ROS Noetic下,手把手教你将自定义A*全局规划器打包成插件(附避坑指南)

本文提供了一份详细的ROS Noetic下自定义A*全局规划器插件开发指南,涵盖从环境准备、算法优化到插件配置与调试的全流程。通过实战案例和避坑技巧,帮助开发者高效实现机器人导航中的全局路径规划,特别适合需要优化ROS导航栈的开发者。

weixin_29168675的博客 285

力扣(LeetCode) 70: 爬楼梯 - 解法思路

假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?要到达第n阶,你可以从第n-1阶(走 1 步)或从第n-2阶(走 2 步)到达。因此,。迭代 DP 解法是最优的,空间复杂度为 O(1)。

Yao H. Wang's Blog 380

Python入门之机器学习(非常详细)篇幅拉满,一般人看不完!

什么是机器学习?监督学习 supervised learning;非监督学习 unsupervised learning;半监督学习 semi-supervised learning;强化学习 reinforcement learning;监督学习是不断向计算机提供数据(特征),并告诉计算机对应的值(标签),最后通过大量的数据,让计算机自己学会判断和识别。例如Google Photo,你在APP中输入狗,这时就会弹出与狗相关的图片,这背后使用的算法就是监督学习。

xiaolinyui的博客 2万+

Windows下Delft3D安装全攻略:从申请许可到编译运行(避坑指南)

本文详细解析了Windows系统下Delft3D的完整安装流程,涵盖环境准备、许可获取、源码编译到性能调优的全过程。针对中国用户常见的网络问题和系统兼容性痛点,提供了经过验证的解决方案,特别强调Intel Fortran编译器匹配、环境变量配置等关键步骤,帮助水利工程师高效完成这一水动力学模拟工具的部署。

weixin_28736355的博客 548

leetcode-70:爬楼梯

leetcode-70:爬楼梯题目解题方法一:回溯(超时)方法二:动态规划 题目 题目链接 解题 方法一:回溯(超时) class Solution { public: int res=0; int tmp=0; void backtracing(int n){ if(tmp==n){ res++; }else if(tmp>n) return; for(int i=1;i<=2;i++){

菊头蝙蝠的博客 420

硅基半导体量子点:单电子自旋量子比特技术手册

现在我们已经了解了从硅片到容错计算的全部环节,让我们用一张总览图把碎片拼成完整拼图。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;important;important;important;color:#000!important;important;important;important;important;color:#000!

VectorShift的博客 371

Leetcode第70题: 爬楼梯

思考到爬楼梯的规律其实就是符合斐波那契数列(Fibonacci Sequence) 规律的,问题就迎刃而解了。我们可以这样来思考:当我们从第 n-1 阶楼梯爬到第 n 阶楼梯时,需要1步;当我们从第 n-2 阶楼梯爬到第 n 阶楼梯时,需要2步。也就是说,到达第 n 阶楼梯的方法数等于到达第 n-1 阶楼梯的方法数加上到达第 n-2 阶楼梯的方法数,即 f(n)=f(n−1)+f(n−2),正好符合斐波那契通项。函数都会产生一个新的函数调用栈帧,该栈帧保存了函数的局部变量和返回地址。,所以递归树的高度是。

weixin_43425300的博客 1418

8、干式变压器

干式变压器的发展,是人类不断挑战材料科学和热物理极限的过程,每一次技术突破,都是在。温度升高,ε_r反而下降(因为分子活动性增强,极化响应变慢)。:固体导热的热阻比液体对流大一个数量级,这是无法逾越的物理规律。Nomex在高温下不是逐渐分解,而是保持性能直到一个临界点。如果 T_a = 40°C,则 T_c = 146.7°C。干式变压器(固体介质分隔):热场、电场、流场(空气)形成三维氢键网络,即使在高温下也能保持机械强度。:不是在现有技术上修修补补,而是寻找新的。仍在H级绝缘允许范围内(≤180°C)

renpeng2692873032的博客 228

【ArcGIS Pro微课1000例】0047:深度学习--棕榈树提取全流程

对汤加科洛瓦伊种植园每棵棕榈树的健康状况进行清查和评估,这需要花费大量的时间和劳动力。为简化此过程,将在 ArcGIS Pro 中使用深度学习模型来识别树木,然后根据植被绿度的测量值计算其健康状况。第一步是找到显示汤加科洛瓦伊的影像,该影像具有足够精细的空间和光谱分辨率来识别树木。获得此影像后,将创建训练样本并将其转换为可供深度学习模型使用的格式。为了让模型识别出它的查找任务,需要定义棕榈树的影像,以便识别相似的像素和树木大小。

智慧空间实验室 2207

力扣70:爬楼梯

力扣70:爬楼梯

2501_93048002的博客 319

MATLAB 开发项目实例 1000 例专栏之第37例:基于Simulink的无人机飞行控制系统设计

通过上述项目实例,我们成功地使用Simulink设计和仿真了一个无人机的飞行控制系统。这个项目展示了从无人机建模、路径规划、控制器设计到仿真验证的完整流程。Simulink的可视化和模块化特性使得系统的建模和仿真更加直观和高效。

xiaoheshang_123的博客 163

力扣70:爬楼梯

摘要:爬楼梯问题要求计算爬到n阶楼梯的不同方法数,每次可爬1或2阶。通过观察前几阶的解法(1,2,3,5),发现规律f(n)=f(n-1)+f(n-2),即斐波那契数列。采用动态规划思想,从底层逐步计算到第n层,避免重复计算。代码实现时初始化前两阶结果,通过循环从第三阶开始依次计算并更新中间值,最终返回第n阶的解。时间复杂度O(n),空间复杂度O(1)。

weixin_74285822的博客 403

js逆向实战:爬取淘宝男装商品

本文介绍了一个淘宝商品数据爬取程序的技术实现方案。该程序通过分析淘宝H5页面接口,实现了商品名称、价格、销量等关键信息的抓取,并支持图片下载功能。核心内容包括:1. 使用Request库发送HTTP请求获取数据;2. 通过逆向分析淘宝的签名算法(MD5加密)生成合法请求;3. 解析JSON数据并提取商品信息;4. 处理分页参数实现多页数据爬取;5. 将数据保存为CSV文件并下载商品图片。程序还实现了反爬虫绕过、错误处理、文件管理等辅助功能,完整展示了从数据采集到存储的全过程。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 1573

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

leetcode:70. 爬楼梯

动态规划

OceanStar的博客 3701

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LeetCode第70题:爬楼梯

LeetCode第70题:爬楼梯 问题描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1、1 阶 + 1 阶 2、 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1、 1 阶 +...

朕蹲厕唱忐忑的博客 216

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C++练习——LeetCode:70. 爬楼梯

LeetCode:70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1...

Sunrise的博客 393

【LeetCode】第70题——爬楼梯(难度:简单)

【LeetCode】第70题——爬楼梯(难度:简单)题目描述解题思路代码详解方法一:递归方法二:数组注意点 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/climbing-stairs 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 示例 1 输入: 2 输出: 2

Se7en_Dayz的博客 384

leetcode 70:爬楼梯(python)

腾讯精选练习(50 题)Day23 || leetcode 70:爬楼梯(python)

nanashi_F的博客 592

力扣70题:爬楼梯

力扣算法:爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 int climbStairs(int n){ if(n<3) return n; int

disboom的博客 275

LeetCode第70题:爬楼梯(简单)

LeetCode第70题:爬楼梯(简单) 题目: 思路一:斐波那契额数列,想用递归解决问题。但是超出了时间限制。 class Solution { public int climbStairs(int n) { if(n==1){ return 1; }else if(n==2){ return 2; ...

new_whiter的博客 429

Leetcode 70:爬楼梯

Leetcode 70:爬楼梯题目描述我的解法:暴力法运行超时其它解法1:对暴力法的优化其它解法2:动态规划其它解法3:斐波那契数其它解法4:直接套斐波那契通项公式 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释:有两种方法可以爬到楼顶。 1....

IcdKnight的博客 243

力扣:70. 爬楼梯

你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。

yasdasdp的博客 355
上一篇: leetcode 51 52:N皇后问题位运算
下一篇: leetcode 120: 三角形最小路径和
coding_diamond
博客等级 码龄8年 8粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值