Leetcode NO.70 Climbing Stairs 爬楼梯

翁恺-C语言程序设计 PTA习题集 代码练习题 阅读详情

1.问题描述

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。

2.测试用例

示例 1
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶
示例2
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶

3.代码

1.斐波拉契数列&Dp
code
/**
  *      n
  *   |        \
  * n-1 (l)     n-2(r)
  * |     \
  * n-2     n-3
  *
  * 由上面可知,我们假设楼梯有n阶,到达n阶有连个方案,
  * 一个是 n-1(到达n-1需要l步)  或者 n-2(到达n-2需要r步)
  * 也就是说 要想知道到达n的方案个数,直接求 f(n-1) + f(n-2)即可
  * 即该问题可转化为 斐波拉切数列
  * 备注:由于n-1下有一个 n-2 ,我们可以利用剪枝去掉最右边的n-2, 同样道理去掉n-3 。。
  * 最终求 f(n) = f(n-1) + f(n-2)
  *
  * @param n 阶梯数
  * @return 阶梯方案
*/
public int climbStairsWithDp(int n) {

    int p1 = 1;
    int p2 = 1;
    int tmp;

    for (int i = 1; i < n; i++) {
        tmp = p1 + p2;
        p1 = p2;
        p2 = tmp;
    }

    return p2;
}
复杂度
* 时间复杂度:O(n)
* 空间复杂度:O(1)
2.数学-斐波拉契数列通项式
code
/**
     * 数学方法
     * 利用斐波拉契通项式
     *
     * @param n 阶梯数
     * @return 阶梯方案
     */
public int climbStairsWithMath(int n) {
    double sqrt5 = Math.sqrt(5);
    double res = (Math.pow((1 + sqrt5) / 2, n + 1) - Math.pow((1 - sqrt5) / 2, n + 1)) / sqrt5;
    return (int) res;
}
4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南 首先第19行CREATEDATA创建er_entityset实例,指定其类型为zcl_zbook_manage_mpc=>tt_book,接着把这个引用映射到刚刚第五行定义的FIELD-SYMBOLS变量上去,这样的话,接下来我们对FIELD-SYMBOLS进行的操作,就会自动反应回引用变量er_entityset.因为我们可能在这个方法里,返回多条图书信息,所以需要用内表类型,而非单条记录的ts_book.ts_book代表一本图书的数据结构。...... 阅读详情

相关推荐

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2758

Leetcode:NO.70 爬楼梯 动态规划

题目 假设你正在爬楼梯。需要 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 阶 链接:https://leetcode-cn.com/proble

泛泛之素 1130

DFT设计绪论

DFT设计的主要目的是为了将defect-free的芯片交给客户。 产品质量,通常使用Parts Per million(PPM)来衡量。 但是随着IC从SSI到VLSI的发展,在test上花销的时间越来越多,test的quality却很难提高,这使得DFT的engineer不断的发展着DFT的技术。 DFT engineer面对的第一个问题是设计内部的状态的可测试性问题。在...

ahr7882的博客 1195

Stair Test(爬楼梯测试)

在做完controller的时候一定要有一步测试–爬楼梯测试或者爬坡测试。

weixin_44025382的博客 1236

python爬虫自动下载网页链接

需求分析 今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的: Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...

da_kao_la的博客 1万+

USRP X410 MPM版本与主机UHD版本不匹配问题记录与解决

至此大功告成!之前安装软件的坑算是填起来了,再次记录一下,希望能帮到有同样问题的小伙伴~

yanzuwu233的博客 1435

70. 爬楼梯

爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意: 给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 代码+思路+注释: public class SevenZero { public static void ma...

qq_36059306的博客 280

迪文串口屏开发环境搭建全流程:从DGUS Tool到串口联调

串口屏作为嵌入式人机交互的核心组件,通过串口通信实现主控MCU与显示终端的指令交互。其工作原理基于变量地址映射,主控读写VP地址即可驱动屏上控件,兼具低功耗与高稳定性。在工业控制、医疗设备及智能家居面板等场景中,串口屏能显著降低开发门槛与硬件成本。迪文屏凭借DGUS Tool上位机与自定义串口协议,成为主流选择。掌握DGUS Tool版本匹配、串口驱动安装及VP地址规划,是快速搭建开发环境的关键。

weixin_33937499的博客 607

Leetcode爬楼梯算法与分析

@Leetcode爬楼梯 上楼梯经典问题,解法可谓是千奇百怪,但是几个最为人所熟知的方法还是依旧十分基础,说起来更是朗朗上口。不多说了,请看题干: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1.1 阶 + 1 阶 2.2...

Maple_PI的博客 1375

解密Android相机框架:从HAL到应用层的全链路解析

本文深入解析Android相机框架的全链路架构,从应用层到硬件抽象层(HAL)再到驱动层,详细介绍了CamX-CHI架构的设计哲学与实战应用。通过HAL3接口、V4L2交互机制及Camera2 API的最佳实践,帮助开发者优化相机性能,解决多摄切换、预览卡顿等常见问题,提升成像效率与稳定性。

weixin_29238147的博客 408

吃透工业通信:C#工控机实现Modbus、OPC UA、Profinet、EtherCAT协议全适配

本文介绍了基于C#的工业通信协议全适配方案,采用分层架构设计实现Modbus、OPC UA、Profinet和EtherCAT四种主流协议的统一管理。核心包括:1)三层架构(应用层、抽象层、协议层)降低耦合;2)定义统一通信接口IIndustrialCommunication;3)工厂模式创建不同协议实例;4)以Modbus TCP为例展示具体实现。该方案经过实际项目验证,可简化多协议设备管理,提升工业自动化系统的开发效率。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 722

CCF NOI1072 爬楼梯

问题链接:CCF NOI1072 爬楼梯。 时间限制: 1000 ms  空间限制: 262144 KB 题目描述    树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。 输入   输入包含若干行,每行包含一个正整数

海岛Blog 2327

黑猫带你学eMMC协议第9篇:eMMC初始化过程(initial)

本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 文章为个人辛苦整理,付费内容,禁止私自转载。 文章所在专栏:《黑猫带你学:eMMC协议详解》 1 什么是emmc的初始化 对于小白来说,可能不太明白什么是emmc初始化。举个栗子:当你拿到一个电脑,接上电源,是不是就立马可以用了呢?并不是吧,你还需要去开机,等待电脑启动,配置完各种参数,等出现了电脑桌面,你才能用。那么同样,对于emmc芯片来说,也不是提供电源就能用了,需要输入各种命令后,让其进入到tran state后,才能正.

黑猫奥利奥的博客 6741

python Solution LeetCode No.70 climbing-stairs(爬楼梯)

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

一梦如是的博客 315

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

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

力扣第 70 题:爬楼梯问题(Climbing Stairs)

定义dpidp[i]dpi表示爬到第iii级台阶的方法数。通过递归结合记忆化存储,成功解决了爬楼梯问题。避免了重复计算,性能优于纯递归。逻辑清晰,容易理解。如果对递归不熟悉,也可以通过迭代法或动态规划表实现,进一步优化空间复杂度。有关更多动态规划问题,欢迎继续关注!

weixin_48941116的博客 1539

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【LeetCode】70. Climbing Stairs 解题报告(Python)

【LeetCode】70. Climbing Stairs 解题报告(Python)题目描述解法:动态规划 题目地址:https://leetcode.com/problems/climbing-stairs/submissions/ 题目描述 You are climbing a stair case. It takes n steps to reach to the top. Each tim...

ttinch的博客 349

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

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

LeetCode70. Climbing Stairs 爬楼梯 JAVA实现

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

帽帽的博客 2517

Leetcode 70. Climbing Stairs 爬楼梯

Leetcode 70. Climbing Stairs 爬楼梯70. Climbing Stairs 爬楼梯题目描述示例:解答代码 70. Climbing Stairs 爬楼梯 题目描述 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or...

importsys的博客 464

[LeetCode]70. Climbing Stairs

70. Climbing Stairs 一、题目 Problem Description: You are climbing a staircase. It takes n steps to reach the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? Example 1: Input: n = 2 Output: 2 Explanation: T

KKKKKKOBE_24的博客 384

[LeetCode] 70. Climbing Stairs

原题链接: https://leetcode.com/problems/climbing-stairs/ 1. 题目描述 You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways...

Ber03的博客 176

LeetCode 70. Climbing Stairs 题解

本题是动态规划的经典应用问题,主要考察对动态规划思想的理解和使用。通过使用动态规划,我们可以高效地计算爬到楼顶的不同方法数。动态规划的核心思想是:对于第i阶,有两种方法可以到达,因此。这种方法不仅适用于爬楼梯问题,还可以应用于许多其他类似的问题,例如斐波那契数列。掌握动态规划的思想,对于解决这类问题非常重要。

cannonjinx的博客 1024

LeetCode --- 70. Climbing Stairs

70. Climbing Stairs Difficulty: Easy You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the to...

MissXy_的博客 432

leetcode python3 简单题70. Climbing Stairs

1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第七十题 (1)题目 英文: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many d...

从此做一个俗人 256

LeetCode 70. 爬楼梯(Climbing Stairs)

摘要: 爬楼梯问题要求计算爬到第 n 阶台阶的方法数,每次可爬 1 或 2 阶。其本质是斐波那契数列的变形,递推公式为 f(n) = f(n-1) + f(n-2)。 三种解法对比: 暴力递归(O(2ⁿ) 时间):直观但存在重复计算,仅适合理解基础逻辑。 DP 数组(O(n) 空间):通过动态规划数组存储中间结果,避免重复计算,适合学习标准 DP 思路。 滚动数组(O(1) 空间):仅用三个变量迭代更新,时空最优,满足进阶要求,为推荐解法。 核心注意点: 递归需记忆化以避免超时; DP 数组需正确处理初始条

2503_93701293的博客 663

【LeetCode】No.70 Climbing Stairs

【原题】 Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the targe

myangel_xy的博客 402

70. Climbing Stairs leetcode 爬楼梯

70. Climbing Stairs 问题表述: You are climbing a staircase. It takes n steps to reach the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 思路:这是道Fibonacci问题,当n>=2时,F(N) = F(N-1)+F(N-2),有些区别是,斐波那契序列是从0开始,即

makeyy123的博客 231
上一篇: Leetcode NO.121 Best Time To Buy And Sell Stock 买卖股票时间
下一篇: Leetcode NO.1143 Longest Common Subsequence 最长公共子序列
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值