爬楼梯问题

跳台阶基础版、改进版(不能连续跳2阶) 算法 跳台阶基础版、改进版(不能连续跳2阶) @author:Jingdai @date:2020.11.15 跳台阶(青蛙跳)是一个非常经典的算法问题,前几天看面试题看到一个跳台阶的改进版(不能连续跳2个台阶),现总结一下。 在介绍改进版解法之前先复习一下基础版,不想看的可以直接跳到改进版部分。 基础版 题目描述 有一个 n 阶的楼梯,你从最下面往上跳,每次可以跳1阶或2阶,有多少种方法可以跳到楼顶? 思路及代码 这个基础版很简单,对于第 n 阶,你只有两种方式跳上去: 从 n-1 阶跳1阶跳 阅读详情
爬楼梯问题,每次可以走1步或者2步,爬上n层楼梯的总方法,这题就是一个变相的fibonacci问题。

当n=1时,有1种方法,即直接走1步

当n=2时,有2方法:连续走2步,或直接走两步

对于n,设f(n)为总方法,则 f(n) = f(n-1)+f(n-2)  

ps:f(n-1)即第一次走一步的走法,

    f(n-2)即第一次走两步的走法

代码如下:

#include<iostream>
using namespace std;
int ClimbStairs(int n)
{
	if(n<0)
		return -1;
	int res[] = {0,1};
	if(n<2)
		return res[n];
	int f1 = 0,f2 = 1;
	int result = 1;
	for(int i=1;i<=n;i++)
	{
		result = f1+f2;
		f1 = f2;
		f2 = result;
	}
	return result;
}
int main()
{
	int n;
	cin>>n;
	cout<<ClimbStairs(n)<<endl;
}



LeetCode高频100题刷题记录之——爬楼梯 LeetCode高频100题刷题记录之——爬楼梯 附字节笔试施加额外条件的实现推导。 阅读详情

相关推荐

动态规划——爬楼梯问题(爬楼梯+最省力爬楼梯)

1、问题:力扣原题 2、分析 根据题意展开分析,爬第一层楼梯有一种方法,爬到第二层楼梯有两种方法,那么爬到第三层楼梯可以通过从第一层楼梯一次性跨两步到第三层或者从第二层楼梯一次跨一步到第三层。所以到第三层楼梯的状态可以由第一层楼梯和第二层楼梯的状态进行推导,,故该题可采用dp来实现。 dp五部曲: 1) 确定dp数组及含义 dp[i]表示爬到第i层楼梯总的方法数 2)确定递推公式 dp[i]= dp[i-1] + dp[i-2]; dp[i-1]表...

weixin_50666824的博客 4099

爬楼梯——不能连续走两步

9月6日字节跳动笔试总结 题目描述: 有个楼梯比较高,我们有多种方式可以走上去,但是在走楼梯的时候有几个限制:一是每次只可以走一步或者两步,而是不能连续的走两步,那么我们需要计算多少种走法。 输入:楼梯的层数 输出:总共有多少种走法 解析:可以将一个n阶楼梯的走法分为两种,一种是最开始先走一步的,记为n1n_1n1​,一种是最开始先走两步的n2n_2n2​。那么一个n阶楼梯的走法就是这两种走法的和ntotal=n1+n2n_{total} = n_1 + n_2ntotal​=n1​+n2​。对于一个n+1

getCppAndPython的博客 1832

猴子爬山问题、爬楼梯问题等

猴子爬山问题求解 问题描述:一个顽皮的猴子在一座50级的台阶的小山上爬山跳跃,上山时需要从山脚至山顶网上跳50级台阶,一步可跳2级,或跳3级,或跳4级,求上山有多少种不同的跳法?下山时从山顶至山脚往下跳50级台阶,一步 可跳1级,或者2级,或者3级,求下山有多少种不同的跳法? public class MonkeyMout2 { public static void main(Stri...

weixin_42281608的博客 3122

爬楼梯--每次只能走一步或者两步,但是不能连续走两步

问题描述 爬楼梯–每次只能走一步或者两步,但是不能连续走两步 结合上面的图形 如果用户的楼层大于了2的话, 走的方式就分为了两种,第一次走一步或者第一次走两步,当用户走一步的话,下一次的走法就有:走一步或者走两步;当用户走了两步的话,下一次的走法就只能走一步 function climbStairs(n, status) { if (n < 0) return 0; if (n == 1) return 1; if (n == 2) { //当用户

m0_43441273的博客 5197

C++解决爬楼梯问题

假设你正在爬楼梯,需要n阶你才能到达楼顶,每次你可以爬1或2个台阶,你有多少种方法可以爬到楼顶?

qq_43775899的博客 1697

MBIST --- PATR1.Memorybist测试原理

mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist组成部分,测试的原理以及注意事项。

sinat_27691203的博客 1万+

跳台阶算法 不允许连续跳两次,算法怎么写

跳台阶算法 不允许连续跳两次,算法怎么写 N(n)函数为n阶梯有N(n)种跳法 M(n)函数为n个台阶中最后一跳连续跳两格的次数 #include <iostream> using namespace std; int N(int n); int M(int n); int main() { int n; cout << "Enter n" << endl; cin>> n; int p= N(n); cout <

努力是明天快乐的源泉 692

Oracle EBS订单的流程(Order->AR)

基本流程创建订单路径:Order Management > Orders,Returns > Sales Orders填写订单头信息,客户,订单类型,销售人员填写订单体信息,输入物料,数量...然后Book Order,订单Book之后,你会发现订单头的Status的状态变成了“Booked”,订单行的状态为"Awaiting Shipping",记录下来你的订单号,后边的每一步都需要这个订单号。

田攀的日志 4万+

爬楼梯类问题

有些人将一些爬楼梯模型的拓展题目强行解释为特殊化的背包问题,这样也行,毕竟我们上面就分析过,是可以将爬楼梯问题抽象为背包问题的,只不过这个背包需要考虑物品的顺序,但从理解上来说,将其解释为爬楼梯问题更容易理解。不过,如果我们注意观察爬楼梯模型和背包模型的代码,就会发现,爬楼梯是先遍历背包容器,再遍历物品;首先,爬楼梯类题目可以抽象为“类似于”背包问题的题目:将每次可以爬的楼梯数视为物品,目标楼梯阶数为背包容积,那么爬楼梯题目就相当于,给定。个物品,求装满背包所需的物品个数,不限制物品的使用次数。

jyyyyx的算法之旅 532

LLM and Embedding区别

LLM(大语言模型)和 Embedding(嵌入)是自然语言处理(NLP)中的两个核心概念,它们的核心区别在于。Embedding 计算向量。

u010674101的专栏 1874

单片机NTC热敏电阻测温:六种实用电路方案与选型指南

本文详细介绍了单片机系统中NTC热敏电阻测温的六种实用电路方案,包括分压法、恒流源法、RC充放电法、电桥法、频率法及集成专用IC方案,并提供了关键的硬件选型指南和软件处理技巧,帮助工程师实现高精度、低成本的温度测量。

herb5的博客 820

java爬楼梯问题

问题 假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1级或者 2级,那么你有多少种方法爬到楼梯的顶部? public class ClimbSairs { public static void main(String[] args) { System.out.println("爬1个台阶有" + climb(1) + "种走法"); System.out.println("爬2个台阶有" + climb(2) + "种走法"); System.out.println("爬3个台阶有"

倒骑驴走着瞧的博客 1239

【Go语言实战】(2) Gin+Vue 电子商城

618来!!不用纠结去哪里剁手了!直接自己安排一个商场不香吗??

面向生活编程 4827

c++ 爬楼梯问题 递归解决

爬楼梯问题 题目描述 一个人爬楼梯,每次只能爬1个或两个台阶,假设有n个台阶,那么这个人有多少种不同的爬楼梯方法? 输入 输入台阶的阶数 输出 输出有多少种爬楼梯的方法 样例输入 5 样例输出 8 这道题由题目中给的意思,想要从题目里得出什么公式结论,是很不容易的,也会解不出来。所以,应该举例子,从n的值与答案关系的规律入手。列表如下: n 答案 1 1 2 2 3 3 4 5 5 8 6 13 应该看出来了吧。当n=1时,答案为1;当n=2时,答案为2.其余都

S_JH330206的博客 3145

VN1640 CH5 I/O通道终极指南:【从硬件原理—>工程实战—>自动化测试实战】

摘要:本文详细解析Vector VN1640 CH5 I/O通道的硬件原理与工程应用,涵盖模拟输入(AIN)、数字输入(DIN)和数字输出(DOUT)三大功能模块的配置指南。通过硬件隔离设计实现高精度信号采集与驱动控制,重点分析开漏输出特性及保护机制。提供PWM控制、ECU上电时序测试、传感器闭环控制等实战案例的CAPL脚本代码,并强调多设备同步采集的精准性(时间偏差<1µs)。适用于汽车电子HIL测试、ECU信号监测等场景,所有方案均通过实际项目验证。

汽车控制器系统开发、VIL测试、HIL测试、MIL测试、EMS电喷系统标定与开发、热管理系统标定 759

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 268

Python爬楼梯问题

问题描述: 一共有 n 阶楼梯,每一次你可以爬一个台阶或两个 你有多少种不同的方法可以爬到楼顶? (其中,给定的 n 是一个整数) 示例: 输入:2 输出:2 因为两阶台阶有两种方式爬到楼顶 1. 爬一阶再爬一阶 2. 直接爬两阶 问题分析: 1.拆解问题 一共n阶台阶,有两种方式爬,所以我们到达第n阶的时候 不是从第n-2爬上来,就是从第n-1阶爬上来,所以我们把 问题看成到达第 n-2 阶时所有方式加上到达第n-1阶时 所有方式就是到达第n阶的所有方式. 2.状态定义

琉璃的博客 5752

微信小程序|基于小程序+云开发制作一个租房小程序

经济发展的同时伴随着大批人群的流动,租房需求一直是持久不衰的话题,如何租好房,好租房,跟随此文一起制作一个租房小程序,让租房不再困难。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 4928

爬楼梯问题递归解法

简单爬楼梯   一个人爬楼梯,一次最多只能爬3级,问爬上15级楼梯一共有多少种方法?  一般遇到这种问题我们可以考虑递归,从最后开始考虑。因为一次性最多只能爬3级楼梯,那么想爬上15级楼梯无非就是以下三种情况:  1.从14级楼梯爬1级上去  2.从13级楼梯爬2级上去  3.从12级楼梯爬3级上去  设爬n级楼梯的方法数为f(n),则f(15) = f(14) + f(...

gw1994的博客 5183

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

爬楼梯问题总结(持续更新)

爬楼梯问题总结(持续更新) 因为最近做了几道爬楼梯问题,可自己还是不会做。 因为我刚开始用的自己的方法,没有学习通用方法(简单方法) 下面我还是来总结一下目前遇到的爬楼梯问题 如果有更好的爬楼梯问题,请将链接发至评论,鄙人~将认真学习,总结来更新此博客 先说一下方法思想,然后再给出具体例题 有...

wjhshuai的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

爬楼梯问题以及拓展

爬楼梯问题以及拓展 描述 树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级 也可以第一次走两级,第二次走一级,一共3种方法。 输入 输入包含一行,一行包含一个正整数N,代表楼梯级数,1 <= N <= 5000 输出 不同的走法数,输出该层楼梯的方案数 一般思想: 相当于从终点n梯回到0梯,...

weixin_44335224的博客 1614

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

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

汉诺塔问题和爬楼梯(递归)

这两个问题是很好的递归问题,递归难就难在写出来简单,但是真正理解起来还是有一定的思考量的。

2301_80344616的博客 1379

学会了爬楼梯,还不会动态规划吗?——DP中的爬楼梯问题

动态规划作为算法题中比较重要的一章节了,同时也是比较难写的,但是找到规律之后,大部分题无非都是在经典问题上面做变形。 本篇文章重点在于通过题目来理解DP,并不是从晦涩难懂的概念讲起 下面,我们来看看DP中的爬楼梯问题:

xiao_a_lian的博客 1189
上一篇: 关于Activity的启动模式
下一篇: 关于Activity向右滑动销毁的具体实现
潘建成
博客等级 码龄12年 139粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值