【动态规划】Leetcode 746. 使用最小花费爬楼梯

【动态规划】Leetcode 746. 使用最小花费爬楼梯

    • 解法

---------------🎈🎈题目链接🎈🎈-------------------

解法

😒: 我的代码实现============>

动规五部曲

✒️确定dp数组以及下标的含义

dp[i] 表示跳跃到第 i 层,需要的最少花费总和

✒️确定递推公式

可以有两个途径得到dp[i],一个是dp[i-1] 一个是dp[i-2]。
dp[i-1] :表示跳到 i -1 层需要的花费
dp[i-2] :表示跳到 i -2 层需要的花费
从dp[i-1] 跳到 dp[i] 层需要的花费:dp[i-1] + cost[i-1]
从dp[i-2] 跳到 dp[i] 层需要的花费:dp[i-2] + cost[i-2]

那么究竟是选从dp[i - 1]跳还是从dp[i - 2]跳呢?——选小的
因此: dp[i] = Min( dp[i-1] + cost[i-1] , dp[i-2] + cost[i-2] )

✒️dp数组初始化

在第0层,和第1层的时候不花费。
如果要跳走,那就需要花费
所以初始化dp[0] = 0 , dp[1] = 1

✒️确定遍历顺序

从前到后

✒️举例推导dp数组

时间复杂度O(N)
空间复杂度O(N)

📘代码

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        // 动态规划
        // dp数组:dp[i] 到达第i台阶所花费的最少费用为dp[i]
        int[] dp = new int[cost.length+1];
        // 到达第0层和第1层不需要花费,所以初始化为:
        dp[0] = 0;
        dp[1] = 0;
        for(int i = 2; i < cost.length+1; i++){ // 顺序遍历 从2开始到到达楼梯顶部(cost.length+1)
            dp[i] = Math.min( (dp[i-1] + cost[i-1]), (dp[i-2] + cost[i-2]) );
        }
        return dp[cost.length];
    }   

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

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

相关文章

Ubuntu Desktop - Updates (不升级到新版本)

Ubuntu Desktop - Updates [不升级到新版本] 1. UpdatesReferences 1. Updates System Settings -> Software & Updates -> Updates ubuntu-16.04.3-desktop-amd64.iso 不升级到新版本 ​ References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

二叉树的遍历及线索二叉树试题解析

一、单项选择题 01.在下列关于二叉树遍历的说法中&#xff0c;正确的是( C ). A.若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点&#xff0c;则它一定是该子树的前序遍历结果序列的最后一个结点 B.若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一…

基于springboot+vue的毕业就业信息管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

Windows系统安装WampServer结合内网穿透实现公网访问本地服务

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…

Java的三大特性之一——多态(完)

前言 http://t.csdnimg.cn/0CAuc 在上一篇我们已经详讲了继承特性&#xff0c;在这我们将进行最后一个也是最重要的特性讲解——多态 在讲解之前我们需要具备对向上转型以及方法重写的初步了解&#xff0c;这有助于我们对多态的认识 1.向上转型 即实际就是创建一个子类对象…

制作nuget包并上传到nuget.org

下面是一个详细的步骤指南&#xff0c;用于创建一个简单的 C# NuGet 包并将其发布到 NuGet.org。我们将创建一个简单的数学库作为示例。 步骤 1: 创建一个新的类库项目 首先&#xff0c;我们需要创建一个新的类库项目。这可以通过 Visual Studio 或者 .NET CLI 完成。 使用 …

P6维护:P6 数据库迁移Step by Step

前言 根据大家的近期给的提议&#xff0c;这里简单介绍如何迁移P6数据库&#xff0c;场景选取为从将P6从ORACLE迁移到SQLServer。 Oracle Primavera P6 PPM 以及 EPPM 均有其自带的migrate工具完成数据库迁移&#xff0c;整个操作也较为傻瓜式&#xff0c;只要有基本的数据库…

Swagger3/2+Spring boot 使用小结

一&#xff1a;前言 Swagger 是一个 RESTful API 的开源框架&#xff0c;它的主要目的是帮助开发者设计、构建、文档化和测试 Web API。Swagger 的核心思想是通过定义和描述 API 的规范、结构和交互方式&#xff0c;以提高 API 的可读性、可靠性和易用性&#xff0c;同时降低 A…

RIP,EIGRP,OSPF的区别

1.路由协议 能否选择出最优路径 2.路由协议 是否能够完成故障切换/多久能够完成故障切换 3.路由协议 是否会占用过大硬件资源 -- RIP -- 路由信息协议 跳数:一次三层设备的转发算一跳 中间隔的设备数量 不按照链路带宽来算 Rip认为路径一样,这个时候。 下面这个跳数不…

[NCTF2019]SQLi ---不会编程的崽

欸嘿&#xff0c;继续sql注入。又是新的sql注入类型 很直接哦&#xff0c;给出了sql查询语句。简单扫描一下&#xff0c;robots.txt还能访问。里边提示hint.txt $black_list "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00…

Neo4j桌面版导入CVS文件

之后会出来一个提示框&#xff0c;而且会跳出相关文件夹&#xff1a; 然后我们将CSV文件放在此目录下&#xff1a; 我们的relation.csv是这样的 参见&#xff1a; NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件_neo4j desktop使用-CSDN博客

[BT]BUUCTF刷题第4天(3.22)

第4天&#xff08;共3题&#xff09; Web [极客大挑战 2019]Upload 这是文件上传的题目&#xff0c;有一篇比较详细的有关文件上传的绕过方法文件上传漏洞详解&#xff08;CTF篇&#xff09; 首先直接上传带一句话木马的php文件&#xff0c;发现被拦截&#xff0c;提示不是图…

HTTP(2)

HTTP 通信过程包括从客户端发往服务器端的请求及从服务器端返回客户端的响应。 那么请求和响应是怎样运作的呢 HTTP 报文 用于 HTTP 协议交互的信息被称为 HTTP 报文。 请求端&#xff08;客户端&#xff09;的HTTP 报文叫做请求报文&#xff0c;响应端&#xff08;服务器…

BUUCTF-Misc12

[BJDCTF2020]纳尼1 1.打开附件 一张打不开的图片和一个没什么用的文本文档 2.010 Editor 用010 Editor 打开6.gif这个文件 发现文件头缺少 .gif 的文件头是47 49 46 38 添加文件头并保存 得到一个动图&#xff0c;由四张图片组成 得到一串看似像base64的编码&#xff1a;Q…

第六届“传智杯”决赛 流水账 | 珂学家

前言 整体评价 有幸参加了第六届的传智杯决赛(A组)&#xff0c;因为这个比赛是牛客协办&#xff0c;所以就写在这里。 作为Java选手&#xff0c;比赛中其实吃亏了&#xff0c;主要是T2吃了一发TLE&#xff0c;T4吃了一发莫名其妙的MLE。 顺便吐槽下T3&#xff0c;自测反馈WA…

鸿蒙ArkUI【开发移植Carbon】

项目介绍 本项目是基于开源项目[Carbon] 进行harmonyos化的移植和开发的。 移植版本&#xff1a;Branches/master 这不是单纯只是API和基本功能展示demo&#xff0c;它是最有用的自定义控件的实现&#xff0c;如设计规范中所示。 Carbon试图&#xff1a; 让事情变得更简单&…

手把手教你如何下载学浪上已购买的视频课程

全程干货,教大家如何下载学浪上已购买的视频课程 这个软件已经集成了学浪下载课程的功能 使用也特别简单 链接&#xff1a;https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码&#xff1a;kqvj --来自百度网盘超级会员V10的分享 详细操作按照图片流程 一、…

DP:路径规划模型

创作不易&#xff0c;感谢三连支持&#xff01; 路径规划主要是让目标对象在规定范围内的区域内找到一条从起点到终点的无碰撞安全路径。大多需要用二维dp数组去实现 一、不同路径 . - 力扣&#xff08;LeetCode&#xff09;不同路径 class Solution { public:int uniquePath…

10一维数组

一维数组是什么&#xff1f; // 相同的数据类型的元素组成的有序集合 // 创建一个一维数组 // 例如&#xff1a; int a[5]{1,2,3,4,5}; //说明&#xff1a; // int:表示数据类型 // a:表示数组名 // [5]&#xff1a;数组的长度 // {1,2,3,4,5} &#xff1a;数组的元素 // 一…

Photoshop 工具使用详解(全集 · 2024版)

全面介绍 Photoshop 工具箱里的工具&#xff0c;点击下列表格中工具名称或图示&#xff0c;即可查阅工具的使用详解。 移动工具Move Tool移动选区、图层和参考线。画板工具Artboard Tool创建、移动多个画布或调整其大小。moVe快捷键&#xff1a;V 矩形选框工具 Rectangular Mar…