【算法笔记】动态规划,使用最小花费爬楼梯,详细刨析。

news2024/9/23 15:19:13

1.题目描述

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

示例 1:

输入:cost = [10,15,20]
输出:15
解释:你将从下标为 1 的台阶开始。

  • 支付 15 ,向上爬两个台阶,到达楼梯顶部。
    总花费为 15 。
    示例 2:

输入:cost = [1,100,1,1,1,100,1,1,100,1]
输出:6
解释:你将从下标为 0 的台阶开始。

  • 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
  • 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。
  • 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。
  • 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。
  • 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。
  • 支付 1 ,向上爬一个台阶,到达楼梯顶部。
    总花费为 6 。
    在这里插入图片描述
    通过对题目的分析决定采取动态规划来进行解题,下面将来进行动态规划解题的思路,大家有好的解题方法欢迎留言!!!

2.算法原理及解题代码

2.1状态表示

dp[i]表示:到达i位置时,最小花费

2.2 推导状态转移方程

  • 用之前或者之后的状态,推导出dp[i]的值
  • 根据最近的一步,来划分问题
    在这里插入图片描述

2.3初始化

保证填表的时候不越界,dp[0]=dp[1]=0

2.4 填表顺序

从左往右

2.5 返回值

返回最后一个位置的值即可,此时所代表的就是走到最后一节楼梯所花费的时间的大小。本题中按照我以上我思路返回dp[n]

2.6解题代码

class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        int n = cost.size();
        vector<int> dp(n + 1);
        dp[0] = dp[1] = 0;
        for (int i = 2; i <= n; i++) {
            dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
        }
        return dp[n];
    }
};

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

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

相关文章

js获取快递单号小练习

目录 1、css代码 2、html代码 3、js代码 完整代码 效果图 1、css代码 .box{width: 400px;height: 300px;margin: 100px auto;position: relative;}input{width: 250px;height: 40px;outline: none;}span{display: block;position: absolute;min-width: 270px;max-width: 40…

密钥分配与密钥管理在保障通信安全方面还有什么作用?

密钥分配与密钥管理在保障通信安全方面起着至关重要的作用。在信息时代&#xff0c;通信已成为各种组织和个人的基本需求&#xff0c;而保障通信安全则是确保信息隐私、完整性和可用性的关键。下面&#xff0c;我们将详细探讨密钥分配与密钥管理在保障通信安全方面的作用。 一、…

ide启动端口占用

ide启动端口占用 处理方式 1、打开cmd 命令窗口 2、查询端口 9020 的进程 netstat -ano | findstr :9020 3、关闭相关进程 taskkill /pid 22128 /f

maven工程的pom.xml文件中增加了依赖,但偶尔没有下载到本地仓库

maven工程pom.xml文件中的个别依赖没有下载到本地maven仓库。以前没有遇到这种情况&#xff0c;今天就遇到了这个问题&#xff0c;把解决过程记录下来。 我在eclipse中编辑maven工程的pom.xml文件&#xff0c;增加对mybatis的依赖&#xff0c;但保存文件后&#xff0c;依赖的j…

beebox靶场A1 low 命令注入通关教程(中)

十一&#xff1a;sql注入 select 这个页面是一个选择性框 我们通过选择不同的选项发现上面url中的movie也在不同的变法。那再查看源码得知&#xff0c;这是一个数字型的注入点 那我们就可以构造payload在movie后面改变内容&#xff0c;首先进行爆列数payload为 1 order by 8 时…

k8s容器部署mysql5.7全流程分享

文章目录 一、前言二、打开dockerhub 看到mysql的版本为 5.7三、K8S 容器编排3.1、编写POD的相关信息3.2、编写mysql的data存储位置3.3、编写mysql的my.cnf的挂载文件3.4、编写mysql的service端口 四、启动并禁用root账户4.1 登录&#xff0c;默认密码1234564.2 配置账户权限 五…

联想笔记本如何安装Vmware ESXi

环境&#xff1a; Vmware ESXi 8.0 Vmware ESXi 6.7 联想E14笔记本 问题描述&#xff1a; 联想笔记本如何安装Vmware ESXi 解决方案&#xff1a; 1.官网下载镜像文件 https://customerconnect.vmware.com/en/downloads/search?queryesxi%208 下载 2.没有账户注册一个 …

GNSS系统概述

一.GNSS的定义 1.GNSS全称&#xff1a;全球导航卫星系统 ( Global Navigation Satellite System&#xff0c; GNSS)。 人造卫星导航定位系统是一种星基无线电导航系统&#xff0c;它以人造地球卫星为导航台&#xff0c;为陆、海、空、天各种军民载体提供全天候、高精度的位置…

cordic 算法学习记录

参考&#xff1a;b站教学视频FPGA&#xff1a;Cordic算法介绍与实现_哔哩哔哩_bilibili FPGA硬件实现加减法、移位等操作比较简单&#xff0c;但是实现乘除以及函数计算复杂度高且占用资源多&#xff0c;常见的计算三角函数/平方根的求解方式有①查找表&#xff1a;先把函数对应…

腾讯科技Hi Tech Day暨2023数字开物大会:智能涌现将通往无数的未来

腾讯科技讯 12月14日&#xff0c;以“智能涌现 数开万物”为主题的腾讯科技Hi Tech Day暨2023数字开物大会在北京国家会议中心召开&#xff0c;腾讯科技邀请知名院士、知名经济学家、知名大学教授、研究院院长、产业大咖、互联网大厂高管、知名科技领域头部企业高管、产业数字化…

猫粮哪个牌子质量好性价比高?分享十款主食冻干猫粮品牌排行榜!

一款好的、健康的主粮对猫整体有很大的提升&#xff0c;主食作为猫的日常饮食&#xff0c;直接关乎着小猫是否能摄入充分的营养&#xff0c;达到最佳的理想状态&#xff0c;因此对于每一位铲屎官来说&#xff0c;主食选得好不好至关重要。面对种类众多的主食&#xff0c;很多人…

DSP定时器0笔记

首先了解开发板TMS320f28335是150Mhz的频率 定时器结构图和概要 定时器0对应的中断是TINT0 大概是这样&#xff0c;时钟sysclkout 进入和TCR控制时钟进入 &#xff0c;经过标定计数器&#xff08;stm32的预分频&#xff09;&#xff0c;标定器挂这自动装载寄存器&#xff0c…

(独白)我为什么选择了计算机行业?

为什么可能很简单&#xff0c;但为什么的为什么就有点长了。就当作讲故事吧 在高中毕业后选择专业时&#xff0c;和大多数人一样&#xff0c;我根本不知道要选择什么专业&#xff0c;更不知道哪个专业发展前景好&#xff0c;哪个专业好就业。在当时比较火的专业我记得应该是土…

解锁转换成功:12 个基本的成长骇客技巧

什么是增长黑客&#xff1f;增长黑客已成为营销界的流行语&#xff0c;但许多人仍然不知道增长黑客的含义以及它在营销中是如何发挥作用的。如果你也存在这样的困惑&#xff0c;别担心。今天这篇文章将为你解答以上问题。通过黑客增长和走特立独行的发展道路&#xff0c;你可以…

《opencv实用探索·十九》光流法检测运动目标

前言 光流法&#xff08;Optical Flow&#xff09;是计算机视觉中的一种技术&#xff0c;用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术&#xff0c;可以在视频中检测并测量物体的运动轨迹。 光流的直观理解&#xff1a; 光流是一个视频中两…

VINS-MONO代码解读6----pose_graph

开始pose_graph部分&#xff0c;本部分记住一句话无论是快速重定位还是正常重定位&#xff0c;求出 T w 1 w 2 T_{w_1w_2} Tw1​w2​​就是终极目标。 还剩一个整体Pipeline~~ 1. pose_graph_node.cpp 注意&#xff0c;定义全局变量时即实例化了一个对象 PoseGraph posegra…

开关电源这些纹波噪声如何抑制?

电源工程师都知道&#xff0c;开关电源在运行过程中会产生多种纹波噪声&#xff0c;对电路性能和稳定性产生一定影响&#xff0c;所以要针对各种纹波噪声采取合理的措施来解决&#xff0c;那么如何做&#xff1f; 1、低频纹波噪声主要是由于开关管开关状态的快速变化导致的。在…

C++异步网络库workflow系列教程(3)Series串联任务流

往期教程 如果觉得写的可以,请给一个点赞关注支持一下 观看之前请先看,往期的两篇博客教程,否则这篇博客没办法看懂 workFlow c异步网络库编译教程与简介 C异步网络库workflow入门教程(1)HTTP任务 C异步网络库workflow系列教程(2)redis任务 简介 首先,workflow是任务流的意…

图解python | 字典

1.Python字典(Dictionary) 字典是另一种可变容器模型&#xff0c;且可存储任意类型对象。 字典的每个键值 key>value 对用冒号 : 分割&#xff0c;每个键值对之间用逗号 , 分割&#xff0c;整个字典包括在花括号 {} 中 ,格式如下所示&#xff1a; d {key1 : value1, key…