LeetCode746使用最小花费爬楼梯

题目描述

  给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

解析

  动态规划问题,第i级所花费的有两种情况,一个是通过前一级跳过当前级数上去,此时的花费就是上一级的最小花费。另一个是通过自身爬出去,此时的最小花费就是上一级的最小花费或者上上一级的最小话费中小的那一个加自身的花费。

public int minCostClimbingStairs(int[] cost) {
        // cost.length >= 2
        int[][] dip = new int[2][cost.length];
        dip[0][0] = 0; dip[0][1] = cost[0];
        dip[1][0] = cost[0]; dip[1][1] = cost[1];

        for(int i = 2; i < cost.length; i++) {
            dip[0][i] = dip[1][i - 1];  // 经过上一级
            dip[1][i] = Math.min(dip[1][i - 1], dip[1][i - 2]) + cost[i];  // 经过自己
        }

        return Math.min(dip[0][cost.length - 1], dip[1][cost.length - 1]);
    }

  优化空间,实际上只需要记录三个级别的花费即可。

public int minCostClimbingStairs(int[] cost) {
    int n = cost.length;
    if (n == 2) {
        return Math.min(cost[0], cost[1]);
    }

    // 只需要维护前两步的最小成本
    int first = cost[0];  // 上上级的最小花费
    int second = cost[1]; // 上一级的最小花费
    int current = 0;      // 当前级的最小花费

    for (int i = 2; i < n; i++) {
        current = Math.min(first, second) + cost[i];
        first = second;
        second = current;
    }

    // 返回最后倒数第二级中的最小值,因为可以从这两步结束
    return Math.min(first, second);
}

在这里插入图片描述

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

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

相关文章

【数据结构】穿梭在二叉树的时间隧道:顺序存储的实现

专栏引入 哈喽大家好&#xff0c;我是野生的编程萌新&#xff0c;首先感谢大家的观看。数据结构的学习者大多有这样的想法&#xff1a;数据结构很重要&#xff0c;一定要学好&#xff0c;但数据结构比较抽象&#xff0c;有些算法理解起来很困难&#xff0c;学的很累。我想让大家…

容器中运行ip addr提示bash: ip: command not found【笔记】

容器中运行ip addr提示bash: ip: command not found 原因没有安装ip命令。 rootdocker-desktop:/# ip addr bash: ip: command not found rootdocker-desktop:/# apt-get install -y iproute2

【WP】猿人学12_入门级js

https://match.yuanrenxue.cn/match/1 调试分析 打开控制台出现无限debugger&#xff0c;手动取消断点应对 手动点击各页面查看发包 m参数格式 加密数据时间戳 时间戳 时间: 2024-06-06 01:39:05时间戳: 1717609145我目前的时间是2024年6月4日21:56:22往前几分钟&#xf…

Audio PsyChat:web端语音心理咨询系统

这是一个在服务器本地运行的web语音心理咨询系统&#xff0c;咨询系统内核使用PsyChat&#xff0c;我们为其制作了Web前端&#xff0c;并拼接了ASR和TTS组件&#xff0c;使局域网内用户可以通过单纯的语音进行交互。其中ASR和TTS组件使用PaddleSpeech API。 使用 使用单卡3090…

混剪素材库有哪些?分享7个高质量混剪视频素材网站

作为自媒体创作者&#xff0c;我们经常需要高质量的混剪视频素材来吸引观众。今天&#xff0c;我将为大家介绍几个优质的视频素材网站&#xff0c;确保您的短视频制作既高效又充满创意。 蛙学府素材网 首推蛙学府素材网&#xff0c;这个平台真是创作者的福音。无论是短视频素材…

LLM的基础模型3:Transformer变种

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

Redis页面优化

文章目录 1.Redis页面缓存1.思路分析2.首先记录一下目前访问商品列表页的QPS1.线程组配置10000次请求2.请求配置3.开始压测1.压测第一次 平均QPS为6122.压测第二次 平均QPS为6153.压测第三次 平均QPS为617 3.然后记录一下访问商品详情页的QPS1.线程组配置10000次请求2.请求配置…

数据泄露怎么防?企业文件加密来帮忙

在数字化时代&#xff0c;数据泄露事件频发&#xff0c;给企业带来了前所未有的安全挑战。企业的核心数据、商业机密、客户信息等一旦泄露&#xff0c;不仅会导致经济损失&#xff0c;还会损害企业的声誉和客户信任。因此&#xff0c;如何有效防止数据泄露&#xff0c;成为了企…

如何利用Varjo混合现实技术改变飞机维修训练方式

自2017年以来&#xff0c;总部位于休斯顿的HTX实验室一直在推进混合现实技术&#xff0c;与美国空军密切合作&#xff0c;通过其EMPACT平台提供可扩展的沉浸式飞机维护虚拟现实培训。 虚拟和混合现实对维修训练的好处&#xff1a; l 实践技能&#xff1a;提供一个非常接近真实场…

ECharts 图形化看板 模板(简单实用)

目录 一、官网 二、模板 ①定义请求​编辑 ② 将请求统一管理&#xff0c;别的页面引用多个请求时更便于导入。​编辑 ③最终模板 三、执行效果 四、后端代码 4.1 controller 4.2 xml 4.3 测试接口 一、官网 获取 ECharts - 入门篇 - 使用手册 - Apache ECharts 二、…

视频号上怎么卖货?需要直播,还有粉丝吗?一篇文章带你了解!

大家好&#xff0c;我是电商糖果 关于在视频号上卖货&#xff0c;这是大家最常提起的话题。 大家之所以对视频号卖货感兴趣&#xff0c;主要原因还是抖音卖货火起来了。 而视频号是和抖音处于同一个赛道&#xff0c;这两年也在往电商方向发力。 所以大家对视频号推出电商平…

四川景源畅信:抖音做直播有哪些人气品类?

随着互联网科技的飞速发展&#xff0c;抖音作为新兴的社交媒体平台&#xff0c;已经成为了人们日常生活中不可或缺的一部分。而在抖音平台上&#xff0c;直播功能更是吸引了大量的用户和观众。那么&#xff0c;在抖音上做直播有哪些人气品类呢?接下来&#xff0c;就让我们一起…

会计电子档案系统方案

会计电子档案系统方案是指建立一个以电子方式存储和管理会计档案的系统。该方案具体包括以下几个方面&#xff1a; 1. 系统架构设计&#xff1a;确定系统的组成以及各个组件之间的关联和交互方式。包括数据库设计、系统服务器和客户端的部署等。 2. 电子档案管理&#xff1a;建…

网工内推 | 上市公司网工,Base广东,思科DE/IE认证优先

01 广州赛意信息科技股份有限公司 &#x1f537;招聘岗位&#xff1a;技术架构师 &#x1f537;职责描述&#xff1a; 1、设计、开发和维护工业数据库及其架构&#xff0c;包括数据采集、存储、处理和分析的工具和系统。 2、开发和维护数据管道和工作流程&#xff0c;确保数据…

麒麟系统 安装xrdp 远程桌面方法记录

一、安装环境 麒麟V10 2107 ft2000 麒麟V10 2107 x86_64 二、安装准备 使用《Kylin-Desktop-V10-Release-2107-arm64.iso》镜像 做好U盘启动系统后&#xff0c;需要安装一个远程桌面工具&#xff0c;可以多用户在windows上使用远程桌面访问麒麟系统。 目前在linux系统上较…

RS485 数据不通 debug 调试记录

最近调试一颗 TI 的rs485 收发器芯片 &#xff1a;SN65HVD72DR &#xff0c;遇到到点麻烦&#xff0c;既不能收&#xff0c;也不能发送。 先上图 &#xff1a; PINTYPEDESCRIPTIONNAMENUMBERA6Bus I/ODriver output or receiver input (complementary to B)B7Bus I/ODriver out…

AMD硬刚英伟达Nvidia、英特尔Intel

AMD在2024年台北Computex展会上&#xff0c;由公司董事长兼CEO苏姿丰博士发布了最新AI芯片MI325X&#xff0c;并宣称该芯片相比于NVIDIA的H200&#xff0c;在计算速度上快30%。此番发布突显了AMD在AI加速器领域对NVIDIA的强劲挑战姿态&#xff0c;并规划了每年更新一代AI芯片的…

GNU Radio实现OFDM Radar

文章目录 前言一、GNU Radio Radar Toolbox编译及安装二、ofdm radar 原理讲解三、GNU Radio 实现 OFDM Radar1、官方提供的 grc①、grc 图②、运行结果 2、修改后的便于后续可实现探测和通信的 grc①、grc 图②、运行结果 四、资源自取 前言 本文使用 GNU Radio 搭建 OFDM Ra…

Day09 系统设置模块设计

​ 当前章节完成后的效果图 一.系统设置模块设计 系统设置,分别3个功能点,个性化(用于更改主题颜色),系统设置,关于更多 其中个性化的颜色内容样式,主要是从 Material Design Themes UI 简称 md、提供的demo里复制代码过来使用的。 接下来,对设置模块里面左侧导航栏(个性…

lua vm 三: 栈与函数调用

lua vm 运行过程中&#xff0c;栈是一个重要的数据结构。 栈是一个很巧妙的设计&#xff0c;它同时能满足 lua、c 函数运行的需要&#xff0c;也能实现 lua 与 c 函数的互相调用。 1. 栈 1.1 栈的数据结构 一个操作系统线程中&#xff0c;可以运行多个 lua vm&#xff0c;lua…