2742. 给墙壁刷油漆 Hard

给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time ,分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠:

 ·一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位的时间,开销为 cost[i] 单位的钱。

 ·一位 免费 的油漆匠,刷 任意 一堵墙的时间为 1 单位,开销为 0 。但是必须在付费油漆匠 工作 时,免费油漆匠才会工作。

请你返回刷完 n 堵墙最少开销为多少。

示例 1:

输入:cost = [1,2,3,2], time = [1,2,3,2]
输出:3
解释:下标为 0 和 1 的墙由付费油漆匠来刷,需要 3 单位时间。同时,免费油漆匠刷下标为 2 和 3 的墙,需要 2 单位时间,开销为 0 。总开销为 1 + 2 = 3 。

示例 2:

输入:cost = [2,3,4,2], time = [1,1,1,1]
输出:4
解释:下标为 0 和 3 的墙由付费油漆匠来刷,需要 2 单位时间。同时,免费油漆匠刷下标为 1 和 2 的墙,需要 2 单位时间,开销为 0 。总开销为 2 + 2 = 4 。

提示:

 ·1 <= cost.length <= 500

 ·cost.length == time.length

 ·1 <= cost[i] <= 106

 ·1 <= time[i] <= 500

题目大意:在每次付费油漆匠工作时免费油漆匠才工作的情况下计算刷完所有墙的最小开销。

分析:设dp[k]为刷完k个墙壁最少花费的价格。

(1)在遍历数组的过程中,对于第i个元素,需考虑是否将其加入付费油漆匠的工作任务中,因此对dp数组进行一遍维护,根据dp数组的定义对dp[k]进行更新——dp[k]=min(dp[k],dp[max(0,k-1-time[i])]+cost[i]);

(2)在更新dp数组过程中,由于dp数组后面值的更新结果与更新前的dp数组中前面的值有关,因此为了避免前面的值先更新导致后面值的更新结果有误,更新dp数组应从后往前更新。

class Solution {
public:
    int paintWalls(vector<int>& cost, vector<int>& time) {
        int N=cost.size();
        vector<int> dp(N+1,INT_MAX-1000000);//dp[k]维护刷完k个墙壁最少花费的价格
        dp[0]=0;
        for(int i=0;i<N;++i){
            for(int j=N;j>0;--j){
                dp[j]=min(dp[j],dp[max(0,j-1-time[i])]+cost[i]);
            }
        }
        return dp[N];
    }
};

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

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

相关文章

基于AiService实现智能文章小助手

顾名思义&#xff0c;这个应用就是希望能利用大模型的能力来帮助我写文章&#xff0c;那这样一个应用该如何利用LangChain4j来实现呢&#xff1f;接下来我们来利用AiService进行实现。 AiService代理 首先&#xff0c;我们定义一个接口Writer&#xff0c;表示作家&#xff1a…

高质量AIGC/ChatGPT/大模型资料分享

2023年要说科技圈什么最火爆&#xff0c;一定是ChatGPT、AIGC&#xff08;人工智能生成内容&#xff09;和大型语言模型。这些技术前沿如同科技世界的新潮流&#xff0c;巨浪拍岸&#xff0c;引发各界关注。ChatGPT的互动性和逼真度让人们瞠目&#xff0c;它能与用户展开流畅对…

谷歌如何进行失效链接建设?

失效链接建设是一种高效的外链建设策略&#xff0c;通过发现并利用失效链接来提升自己网站的SEO。以下是详细的步骤&#xff1a; 寻找失效页面&#xff1a;你需要使用SEO工具&#xff0c;如Ahrefs&#xff0c;来查找与你的网站内容相关的失效页面。这些页面可能是竞争对手的失…

Vue项目生产环境的打包优化

Vue项目生产环境的打包优化 前言 在这篇文章我们讨论Vue项目生产环境的打包优化&#xff0c;并按步骤展示实际优化过程中的修改和前后对比。 背景 刚开始的打包体积为48.71M 优化 步骤一&#xff1a;删除viser-vue viser-vue底层依赖antv/g2等库一并被删除&#xff0c;…

【EI会议】2024年机械、计算机工程与材料国际会议 (MCEM 2024)

2024年机械、计算机工程与材料国际会议 (MCEM 2024) 2024 International Conference on Mechanical, Computer Engineering and Materials 【重要信息】 大会地点&#xff1a;广州 官网地址&#xff1a;http://www.ismcem.com 投稿邮箱&#xff1a;ismcemsub-conf.com 【注意…

《XR应用开发者头显运行需求调研报告》重磅发布 ,开发者更加关注集成和可扩展性!

近期&#xff0c;LarkXR发布了一项新的解决方案&#xff0c;实现了3D/XR企业级应用全面接入Apple Vision Pro等头显设备。作为长期陪伴在XR行业开发者身边的技术伙伴&#xff0c;Paraverse平行云发起了此次行业调研&#xff0c;希望通过调研更直观地了解开发者在使用头显运行XR…

IDEA 导出ER图无表关系

一、通过IDEA导出的ER图无表关系&#xff0c;如下&#xff1a; 二、解决无表关系方法 1)这是建表时&#xff0c;user_work表中的t_id不规范&#xff0c;导致idea 找不到虚拟外键&#xff0c;也就不能绘制虚拟外键关系。那我们把user_work表t_id命名规范&#xff0c;t_id是user表…

VBA 批量变换文件名

1. 页面布局 在“main”Sheet中按照下面的格式编辑。 2. 实现代码 Private wsMain As Worksheet Private intIdx As LongPrivate Sub getExcelBookList(strPath As String)Dim fso As ObjectDim objFile As ObjectDim objFolder As ObjectSet fso = CreateObject("Scrip…

Steam新用户怎么参加夏促 Steam最新注册账号+下载客户端教程

steam夏促来了&#xff0c;这里给新玩家科普一下&#xff0c;steam就是一个游戏平台&#xff0c;里面的海量的各种游戏&#xff0c;而steam经常会有各种打折的活动&#xff0c;夏促就是其中之一&#xff0c;并且是其中规模最大的之一&#xff0c;涵盖游戏数量多&#xff0c;优惠…

ZW3D二次开发_CAM_添加刀具

在ZW3D2025中可以通过库添加刀具&#xff0c;代码如下&#xff1a; int idx_tool;int ret ZwCamToolInsertFromLibrary("", "001 METRIC TOOLS.xlsx", "10 mm Flat Endmill", &idx_tool); 平台功能添加刀具如下&#xff1a;

【Linux】进程间通信_2

文章目录 七、进程间通信1. 进程间通信分类管道 未完待续 七、进程间通信 1. 进程间通信分类 管道 管道的四种情况&#xff1a; ①管道内部没有数据&#xff0c;并且具有写端的进程没有关闭写端&#xff0c;读端就要阻塞等待&#xff0c;知道管道pipe内部有数据。 ②管道内部…

esp8266 GPIO

功能综述 ESP8266 的 16 个通⽤ IO 的管脚位置和名称如下表所示。 管脚功能选择 功能选择寄存器 PERIPHS_IO_MUX_MTDI_U&#xff08;不同的 GPIO&#xff0c;该寄存器不同&#xff09; PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);PERIPHS_IO_MUX_为前缀。后面的…

uniapp开发企业微信内部应用

最近一直忙着开发项目&#xff0c;终于1.0版本开发完成&#xff0c;抽时间自己总结下在项目开发中遇到的技术点。此次项目属于自研产品&#xff0c;公司扩展业务&#xff0c;需要在企业微信中开发内部应用。因为工作中使用的是钉钉&#xff0c;很少使用企业微信&#xff0c;对于…

C# 警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset”

警告 warning MSB3884: 无法找到规则集文件“MinimumRecommendedRules.ruleset” C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.CSharp.CurrentVersion.targets(129,9): warning MSB3884: 无法找到规则集文件“MinimumRe…

Android Lint

文章目录 Android Lint概述工作流程Lint 问题种类Lint 警告严重性 用命令运行 LintAndroidStudio 使用 Lint忽略 Lint 警告gradle 配置 Lint查找无用资源文件 Android Lint 概述 Lint 是 Android 提供的 代码扫描分析工具&#xff0c;它可以帮助我们发现代码结构/质量问题&am…

springboot加载注入bean的方式

在SpringBoot的大环境下&#xff0c;基本上很少使用之前的xml配置Bean&#xff0c;主要是因为这种方式不好维护而且也不够方便。 springboto注入bean主要采用下图几种方式&#xff0c;分为本地服务工程注解声明的bean和外部依赖包中的bean。 一、 springboot装配本地服务工程…

国产Cortex-A55人工智能教学实验箱_基于Python机械臂跳舞实验案例分享

一、实验目的 本实验通过TL3568-PlusTEB教学实验箱修改机械臂不同舵机的角度&#xff0c;增加延迟时间&#xff0c;从而做到机械臂跳舞的效果。 二、实验原理 ROS&#xff08;机器人操作系统&#xff09; ROS&#xff08;机器人操作系统&#xff09;&#xff0c;是专为机器人…

报工计件工资核算h5开源版开发

报工计件工资核算h5开源版开发 小型计件工资管理系统&#xff0c;支持后台制定工价&#xff0c;核算工资。支持员工H5端报工&#xff0c;和查看工资情况。 H5手机端 支持在线报工&#xff0c;支持查看我的工资。 自定义费用项 在基础计件工资基础上增加扣除和增加项&#xff…

分布式服务测试各节点调用第三方服务连通性

背景&#xff1a;分布式部署 一个主节点往各个节点下发任务&#xff08;调用第三方服务&#xff09;&#xff0c;目的是为了测试各节点与第三方的连通性 思路&#xff1a; 主节点实现 创建Spring Boot项目&#xff1a;作为主节点的后端服务。 集成Eureka客户端&#xff1a;在…

Python28 十大机器学习算法之线性回归和逻辑回归

1.三类广义上的机器学习算法 监督学习。工作原理&#xff1a;该算法由一个目标/结果变量&#xff08;或因变量&#xff09;组成&#xff0c;该变量将从一组给定的预测变量&#xff08;自变量&#xff09;进行预测。使用这组变量&#xff0c;我们生成了一个将输入数据映射到所…