LeeCode热题100(爬楼梯)

爬楼梯这个题我断断续续看了不下5遍,哪次看都是懵逼的,就会说是满足动态规划,满足斐波那契数列,也不说为什么。

本文一定让你明白怎么分析这个题的规律(利用数学的递推思想来分析),看不懂来打我,但是一定要自己动手画一画台阶写一下

注意:不论是多少个台阶,第一步就只有两种情况是吧:1步跨1个 or 1步跨2个

思路分析(从最后1个台阶倒着分析):

1.在最后1个台阶1种跨法:

2.最后2个台阶有2种跨法:

3.最后3个台阶有3种跨法:

4.最后4个台阶有5种跨法:

注意:上面几个图里面最左边的数字只表示第一步  跨1个台阶 or 1步跨2个台阶(不懂了看下面这个图)

分析最后3个台阶:第一步要么跨1个台阶要么跨2个台阶。当先跨1个台阶时是不是剩下(3-1)个台阶(把跨最后2个台阶的跨法搬过来就行了);当先跨2个台阶时是不是剩下(3-2)个台阶(把跨最后1个台阶的跨法搬过来就行了);

分析最后4个台阶:第一步要么跨1个台阶要么跨2个台阶。当先跨1个台阶时是不是剩下(4-1)个台阶(把跨最后3个台阶的跨法搬过来就行了);当先跨2个台阶时是不是剩下(4-2)个台阶(把跨最后2个台阶的跨法搬过来就行了);

分析最后5个台阶:第一步要么跨1个台阶要么跨2个台阶。当先跨1个台阶时是不是剩下(5-1)个台阶(把跨最后4个台阶的跨法搬过来就行了);当先跨2个台阶时是不是剩下(5-2)个台阶(把跨最后3个台阶的跨法搬过来就行了);

根据数学递推思想可以看出:最后n个台阶的跨法=(n-1)个台阶的跨法+(n-2)个台阶的跨法

既然分析出来与符合斐波那契数列规律是一样的,不妨拿过来斐波那契数列的代码就行了

class Solution {
    public int climbStairs(int n) {
if (n <= 1) return n; // 因为下面直接对dp[2]操作了,防止空指针
        int[]dp=new int[n+1];
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) { // 注意i是从3开始的
            dp[i] = dp[i - 1] + dp[i - 2];
        }
        return dp[n];
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/667938.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SleepFM:利用对比学习预训练的多模态“睡眠”基础模型

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…

Go微服务: 封装nacos-sdk-go的v2版本与应用

概述 基于前文&#xff1a;https://active.blog.csdn.net/article/details/139213323我们基于此SDK提供的API封装一个公共方法来用于生产环境 封装 nacos-sdk-go 我们封装一个 nacos.go 文件, 这个是通用的工具库 package commonimport ("fmt""github.com/nac…

如何查看谁连接到了你的Wi-Fi网络?这里提供几种方法或工具

序言 你知道谁连接到你路由器的Wi-Fi网络吗?查看从路由器或计算机连接到Wi-Fi网络的设备列表,找出答案。 请记住,现在很多设备都可以连接到了你的Wi-Fi,该名单包括笔记本电脑、智能手机、平板电脑、智能电视、机顶盒、游戏机、Wi-Fi打印机等。 使用GlassWire Pro查看连接…

蒙自源六一童趣献礼:纯真餐单,唤醒你的童年味蕾

当岁月的车轮滚滚向前&#xff0c;我们总会怀念那些逝去的时光&#xff0c;尤其是那段纯真无瑕的童年。当六一儿童节来临&#xff0c;心底的那份童趣与回忆总会被轻轻触动。从5月25日起&#xff0c;蒙自源旗下各大门店为所有小朋友&#xff0c;以及那些心怀童真的大人们&#x…

Mac vm虚拟机激活版:VMware Fusion Pro for Mac支持Monterey 1

相信之前使用过Win版系统的朋友们对这款VMware Fusion Pro for Mac应该都不会陌生&#xff0c;这款软件以其强大的功能和适配能力广受用户的好评&#xff0c;在Mac端也同样是一款最受用户欢迎之一的虚拟机软件&#xff0c;VM虚拟机mac版可以让您能够轻松的在Apple的macOS和Mac的…

华为交换机、路由器配置查询、用户界面常见配置及安全加固

华为交换机、路由器配置查询、用户界面常见配置及安全加固。 一、查询命令 1.常用的查询命令 查看当前生效的配置信息&#xff1a; display current-configuration //正在生效的配置&#xff0c;默认参数不显示。查看当前视图下生效的配置信息&#xff1a; display this //常…

数字IC基础:主要的FPGA厂商

相关阅读 数字IC基础https://blog.csdn.net/weixin_45791458/category_12365795.html?spm1001.2014.3001.5482 Xilinx&#xff08;现已被AMD收购&#xff09; Xilinx, 成立于1984年&#xff0c;是FPGA&#xff08;现场可编程门阵列&#xff09;技术的创始者和市场领导者。该公…

Mac下载Homebrew

通过command空格搜索终端打开 直接输入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 然后输入电脑密码 然后直接回车等待安装完成 注意⚠️&#xff1a;如果出现报错/opt/homebrew/bin is not in your PATH…

python操作mongodb底层封装并验证pymongo是否应该关闭连接

一、pymongo简介 github地址&#xff1a;https://github.com/mongodb/mongo-python-driver mymongo安装命令&#xff1a;pip install pymongo4.7.2 mymongo接口文档&#xff1a;PyMongo 4.7.2 Documentation PyMongo发行版包含Python与MongoDB数据库交互的工具。bson包是用…

【设计模式深度剖析】【1】【行为型】【模板方法模式】| 以烹饪过程为例加深理解

&#x1f448;️上一篇:结构型设计模式对比 文章目录 模板方法模式定义英文原话直译如何理解呢&#xff1f; 2个角色类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;以烹饪过程为例类图代码示例 模板方法模式 模板方法模式&#xff08;Template Method Pattern&…

生信分析进阶4 - 比对结果的FLAG和CIGAR信息含义与BAM文件指定区域提取

BAM文件时存储比对数据的常用格式&#xff0c;可用于短reads和长reads数据。BAM是二进制压缩格式&#xff0c;SAM文件为其纯文本格式&#xff0c;CRAM为BAM的高压缩格式&#xff0c;IO效率相比于BAM略差&#xff0c;但是占用存储空间更小。 1. BAM文件的比对信息 BAM的核心信…

软件测试期末复习

第四章 边界黑盒测试续 4.3边界值设计方法 1.边界值设计方法&#xff1a;故障往往出现在定义域或边界值上。通常边界值分析法是作为对等价类划分法的补充。其测试用例来自等价类的边界。是对输入或输出的边界值进行测试的一种黑盒测试方法。 2.边界值分析法和等价类划分法的…

在Visual Studio2022中同一个项目里写作业,有多个cpp文件会报错

为了省事&#xff0c;在同一个项目里写很多个题目&#xff0c;结果只有一个cpp文件时没出错&#xff0c;写了2个cpp文件再想运行时就出错了&#xff1b; 将不相关的cpp文件移出去 在源文件中对其点击右键&#xff0c;找到“从项目中排除”&#xff1b; 结果如图&#xff0c;剩…

网络原理-三

一、连接管理 建立连接,断开连接 建立连接,TCP有连接的. 客户端执行 socket new Socket(SeverIP,severPort); -> 这个操作就是在建立连接. 上述只是调用socket api,真正建立连接的过程,实在操作系统内核完成的. 内核是怎样完成上述的 " 建立连接 "过程的…

云硬盘的基准性能测试场景

参考来源&#xff1a; 深入浅出云计算-05 | 云硬盘&#xff1a;云上IO到底给不给力 云硬盘的性能等级 当下的云硬盘经过了多次的软硬件迭代&#xff0c;尤其是SSD的迅速发展&#xff0c;吞吐量和随机读写能力等各项性能指标都已经不再是问题了。在现代云计算中&#xff0c;已…

数仓建模—ChatETL

数仓建模—ChatETL 前面我们介绍过ChatBI ,就是让用户通过自然语言对话的方式可以获取到自己想要的数据,然后通过合适的报表展示出来,其实我们可以将其理解为应用层面的技术创新,但是这个实现的前提就是我们底层已经有加工好的大量的数据模型数据表,并且有完善的元数据建…

“论SOA在企业集成架构设计中的应用”必过模板,突击2024软考高项论文

考题部分 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA&#xff09;的新型企业应用集成技术&#xff0c;强调将企业和组织内部的资源和业务功…

【自动化运维】不要相信人,把所有的东西都交给机器去处理

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。 大家好&#xff0c;我是闲鹤&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了7年多&#xff0c;主要从事物联网/车…

【网络安全的神秘世界】MySQL

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 MySQL MySQL 教程 | 菜鸟教程 (runoob.com) 什么是数据库 数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库 在do…

COLING 2024: 复旦发布AoR,层级聚合推理突破大模型复杂推理上限

“三个臭皮匠&#xff0c;顶个诸葛亮&#xff1f;” “一个模型不行&#xff0c;那就再堆一个&#xff1f;” 过去当我们在处理复杂任务的时候&#xff0c;往往会考虑集成策略&#xff08;Ensembling Strategy&#xff09;&#xff0c;通过多个模型投票的方式&#xff0c;选出…