LeetCode 70. 爬楼梯 --- 经典动态规划

爬楼梯

    • 1. 动态规划思路
    • 2. 解决方法
    • 3. 代码

题目简述:爬 n 阶楼梯才能到达楼顶,每次可以爬 1 或 2 个台阶。

1. 动态规划思路

动态规划是一种常见的解决问题的方法,它通过将大问题分解成更小的子问题,并利用子问题的解来解决大问题。

在爬楼梯的问题中,可以将问题分解成两个子问题:爬到第 n-1 阶楼梯和爬到第 n-2 阶楼梯。因为每次可以爬 1 或 2 个台阶,所以爬到第 n 阶楼梯的方法数就是爬到第 n-1 阶楼梯的方法数加上爬到第 n-2 阶楼梯的方法数。

2. 解决方法

使用一个数组 dp 来存储爬到每一阶楼梯的方法数,其中 dp[i] 表示爬到第 i 阶楼梯的方法数。

初始时,dp[0] = 1(爬到第 0 阶楼梯只有一种方法),dp[1] = 1(爬到第 1 阶楼梯只有一种方法)。然后可以通过递推关系 dp[i] = dp[i-1] + dp[i-2] 来计算 dp 数组的其他值。最后,返回 dp[n] 即可得到爬到楼顶的总方法数。

3. 代码

空间复杂度O(n)

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];
}

空间复杂度O(1)

public int climbStairs(int n) {int pre1 = 1;// 前一阶楼梯的方法数int pre2 = 1;// 前两阶楼梯的方法数for (int i = 2;i<=n;++i){int current = pre1+pre2;pre2 = pre1;pre1 = current;}return pre1;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下coredump问题的定位分析方法

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 参考&#xff1a;https://blog.csdn.net/m0_73698480/article/details/130077852 最近定位了一段时间linux下的崩溃问题&#xff0c;又收集了一些思路&#xff0c;特整理记录一下。 常见coredump定位方法是&#xff1a…

软考中级网络工程师-网络技术

下列命令片段含义是( )。 system-view [HUAWEI] observe-port 1 interface gigabitethernet 0/0/1 [HUAWEI] interface gigabitethernet 0/0/2 [HUAWEI-GigabitEthernet0/0/2] port-mirroring to observe-port 1 inbound A 配置端口镜像 B 配置链路聚合 C 配置逻辑接口 D 配置访…

大模型应用工具 LangChain 入门书籍: LangChain 简明讲义

书籍信息 书名&#xff1a;《LangChain 简明讲义&#xff1a;从 0 到 1 构建 LLM 应用程序》出版社&#xff1a;电子工业出版社书籍链接&#xff1a;https://item.jd.com/14105705.html书籍配套代码&#xff1a;https://github.com/kebijuelun/langchain_book 书籍背景 计算机…

力扣LeetCode138. 复制带随机指针的链表 两种解法(C语言实现)

目录 题目链接 题目分析 题目定位&#xff1a; 解题思路 解题思路1&#xff08;粗暴但是复杂度高&#xff09; 解题思路2&#xff08;巧妙并且复杂度低&#xff09; 题目链接 138. 复制带随机指针的链表https://leetcode-cn.com/problems/copy-list-with-random-pointer/ …

实战项目——智慧社区(四)之 系统管理

1、用户管理 提供查询和搜索用户、根据id查询用户信息、添加用户、修改用户、删除用户的功能 界面 添加用户 修改用户信息 2、角色管理 提供查询和搜索角色、根据id查询角色信息、添加角色、修改角色、删除角色的功能 界面 添加角色 修改角色 3、菜单管理 提供查询和搜索菜…

机器学习在安全领域的应用:从大数据中识别潜在安全威胁

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

蓝桥杯第2152题——红绿灯

问题描述 爱丽丝要开车去上班, 上班的路上有许多红绿灯, 这让爱丽丝很难过。为 了上班不迟到, 她给自己的车安装了氮气喷射装置。现在她想知道自己上班最 短需要多少时间。 爱丽丝的车最高速度是 米每秒, 并且经过改装后, 可以瞬间加速到小于 等于最高速的任意速度, 也可以瞵…

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 &#xff0c;java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql&#xff0c;且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…

分布式锁的实现

一、背景 在分布式系统中,一个应用部署在多台机器中,在某些场景下,为了保证数据的一致性,要求在同一时刻,同一任务只在一个节点上运行,即保证某个行为在同一时刻只能被一个线程执行。在单机单进程多线程环境下,通过锁很容易做到,比如 mutex、spinlock、信号量 等。在多…

Chapter 1-10. Introduction to Congestion in Storage Networks

Common Questions on Storage Networks This section covers some questions that we have been frequently asked and our responses to those questions. 本节包括我们经常被问到的一些问题以及我们对这些问题的答复。 Q: What is the difference between a network and a …

ArcGIS Desktop使用入门(三)图层右键工具——可见比例范围

系列文章目录 ArcGIS Desktop使用入门&#xff08;一&#xff09;软件初认识 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——标准工具 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——编辑器 ArcGIS Desktop使用入门&#xff08;二&#x…

如何下载和安装Google Chrome扩展插件:一步步指南

Google Chrome 插件为我们提供了这样的便利&#xff0c;但有时找到一个有用的插件后&#xff0c;我们可能需要将其下载到本地以便离线使用或备份。 一、为什么可以从Google Chrome商店直接下载插件&#xff1f; Google Chrome 扩展插件主要通过Chrome Web Store分发&#xff…

scala---面向对象(类,对象,继承,抽象类,特质)

一、类&#xff08;class&#xff09;和 对象&#xff08;object&#xff09; 1、类 类就是对客观的一类事物的抽象。用一个class关键字来描述和Java一样&#xff0c;在这个类中可以拥有这一类事物的属性&#xff0c;行为等等。 2、为什么要有对象 在java中的一个class既可…

流氓软件清理绝杀全家桶

下载地址&#xff1a;流氓软件清理绝杀全家桶.zip 网上仍有不少软件中携带流氓软件&#xff0c;甚至某些所谓的大厂出品的工具中也会有一些捆绑&#xff01; 对于玩机经验不太丰富的小白来说&#xff0c;也许一不小心&#xff0c;桌面就会被某些流氓软件搞得乌烟瘴气&#xf…

实验笔记之——RGBD GS-ICP SLAM配置与测试

《RGBD GS-ICP SLAM》是最新开源的一个3DGS-SLAM工作&#xff0c;通过利用GICP来实现当前帧gaussian与已mapping的gaussian进行匹配进行位姿的估算&#xff0c;并通过关键帧的选择策略来进一步提升performance~ Use G-ICP to align the current frame with the 3D GS map whic…

基于人脸识别的发型推荐系统代码实现

1.摘要 本文介绍了一个基于人脸识别技术的发型推荐系统的实现与分析。该系统利用Python编程语言和相关库&#xff0c;结合Face人脸识别API&#xff0c;实现了用户上传照片后的性别识别、脸型分析和发型推荐功能。首先&#xff0c;用户通过Tkinter GUI界面选择上传照片&#xff…

gpt在线网页版最全收录

ChatGPT镜像 今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像…

Linux网络基础 (二) ——(IP、MAC、端口号、TCPUDP协议、网络字节序)

文章目录 IP 地址基本概念源IP地址 & 目的IP地址 MAC 地址基本概念源MAC地址 & 目的MAC地址 端口号基本概念源端口号 & 目的端口号 TCP & UDP 协议基本概念TCP 与 UDP 的抉择 网络字节序大端、小端字节序 &#x1f396; 博主的CSDN主页&#xff1a;Ryan.Alask…

DAY8|344.反转字符串、541. 反转字符串II、151.翻转字符串里的单词

344.反转字符串、541. 反转字符串II、151.翻转字符串里的单词 344.反转字符串541. 反转字符串II151.翻转字符串里的单词 344.反转字符串 本题是字符串基础题目&#xff0c;就是考察 reverse 函数的实现&#xff0c;同时也明确一下 平时刷题什么时候用 库函数&#xff0c;什么时…

1.9 数据结构之 并查集

编程总结 在刷题之前需要反复练习的编程技巧&#xff0c;尤其是手写各类数据结构实现&#xff0c;它们好比就是全真教的上乘武功 本栏目为学习笔记参考&#xff1a;https://leetcode.cn/leetbook/read/disjoint-set/oviefi/ 1.0 概述 并查集&#xff08;Union Find&#xff09…