【差分数组】个人练习-Leetcode-3229. Minimum Operations to Make Array Equal to Target
题目链接:https://leetcode.cn/problems/minimum-operations-to-make-array-equal-to-target/description/
题目大意:给出两个数组nums[]和target[],可以对nums[]数组进行这样两种操作
- 给某个区间内的子列全加1
- 给某个区间内的子列全减1
求让nums[]和target[]相等的最小操作次数。
思路:实际上就是让a[] = target[] - nums[]这个数组全为0,操作同样适用在a[]上。考虑到这样一个事实:对于数组的某个区间的统一操作,相当于对于差分数组的两个区间端点做操作。因此构造a[]的差分数组d[]。那么对a[i]到a[j-1]的操作,就相当于对d[i]和d[j]进行操作。比如对下面这个数组a[]的0~2个元素减去1后,d[0]和d[3]发生了改变。
a: 1 1 1 -2 -> a: 0 0 0 -2
d: 1 0 0 -3 2 -> d: 0 0 0 -2 2
并且对于d[]的改变,必然是某个d[i] += 1,某个d[j] -= 1。因此对于a[]某个区间进行操作,就相当于对d[]的两个端点,一个+1,一个-1。
因为最终会将a[]变为全0,此时d[]也全为0,那么就要对d[]进行一对对进行加减。然而反过来考虑,d[]从全0变为别的样子的时候,也是一对对加减上去的,因此实际上d[]中的元素之和一定为0。
那么只需要找正的元素个数即可,这就是最佳的方案。非最佳的方案对应着的是,在d[]的某个元素上+1又-1,这样必然会让操作次数增多。
完整代码
class Solution {
public:long long minimumOperations(vector<int>& nums, vector<int>& target) {int n = nums.size();for (int i = 0; i < n; i++) {nums[i] = target[i] - nums[i];}vector<int> diff(n+1, 0);diff[0] = nums[0];for (int i = 1; i < n; i++) {diff[i] = nums[i] - nums[i-1];}diff[n] = -nums[n-1];long long ans = 0;for (int i = 0; i <= n; i++) {ans += max(diff[i], 0);}return ans;}
};
相关文章:
【差分数组】个人练习-Leetcode-3229. Minimum Operations to Make Array Equal to Target
题目链接:https://leetcode.cn/problems/minimum-operations-to-make-array-equal-to-target/description/ 题目大意:给出两个数组nums[]和target[],可以对nums[]数组进行这样两种操作 给某个区间内的子列全加1给某个区间内的子列全减1 求…...
HTML5--裸体回顾
免责声明:本文仅做分享~ 详情请参考以下: HTML 系列教程 (w3school.com.cn) 菜鸟教程 - 学的不仅是技术,更是梦想! --本文是光秃秃的空壳. 标题标签 段落标签 换行和水平线 文本格式化标签 (一般用左边的ÿ…...
【网络安全】CVE-2024-46990: Directus环回IP过滤器绕过实现SSRF
未经许可,不得转载。 文章目录 背景漏洞详情受影响版本解决方案背景 Directus 是一款开源 CMS,提供强大的内容管理 API,使开发人员能够轻松创建自定义应用程序,凭借其灵活的数据模型和用户友好的界面备受欢迎。然而,Directus 存在一个漏洞,允许攻击者绕过默认的环回 IP …...
问:JVM的垃圾收集算法你知道哪些,有什么区别?
GC(垃圾回收器)的概念 GC,即垃圾回收(Garbage Collection),是计算机程序中一种自动管理内存的机制。其目的是自动回收不再被使用的对象所占用的内存空间,从而避免内存泄漏和内存溢出࿰…...
Python selenium库学习使用实操四
系列文章目录 Python selenium库学习使用实操 Python selenium库学习使用实操二 Python selenium库学习使用实操三 文章目录 系列文章目录[TOC](文章目录) 前言一、元素获取二、选项解析总结 前言 在Python selenium库学习使用实操二中提到了下拉框的操作,一种是标…...
用Go开发跨平台GUI
本篇内容是根据2023年3月份#271 Cross-platform graphical user interfaces音频录制内容的整理与翻译 这一期与 Wails 和 Fyne 的创建者一起深入研究为不同架构和操作系统编写 Go 代码。 译者注: Wails的作者是在澳大利亚悉尼的威尔士人,github头像是威尔士的旗帜,Wails也是Wa…...
云原生开发 - 工具镜像(简约版)
在微服务和云原生环境中,容器化的目标之一是尽可能保持镜像小型化以提高启动速度和减少安全风险。然而,在实际操作中,有时候需要临时引入一些工具来进行调试、监控或问题排查。Kubernetes提供了临时容器(ephemeral containers&…...
Mac 电脑pink 后端ip地址进行本地联调
文章目录 0: 使用ping 192.39.192.180查看是否能ping通1:点击访达2:在访达里面 shift commit g 打开前往路径的窗口3:在窗口中输入地址/private/etc/hosts4:打开hosts文件 添加后端地址(如:192.39.192.180 localhost:80805:保存 后端ip为192.39.192.180…...
iPhone使用指南:如何在没有备份的情况下从 iPhone 恢复已删除的照片
本指南将向您展示如何在没有备份的情况下从 iPhone 恢复已删除的照片。我们所有人在生活中的某个时刻都一定做过一些愚蠢的事情,例如从手机或电脑中删除一些重要的东西。这是很自然的,没有什么可羞耻的。您可能在辛苦工作一天后回来。当突然想看一些照片…...
黑马程序员 javaWeb基础学习,精细点复习【持续更新】
文章目录 WEB开发一、HTML1.html介绍 二、CSS1.CSS介绍2.CSS导入方式3.CSS选择器4.CSS属性 三、JavaScript1.介绍2.浏览器3.js的三种输出方式4.js定义变量5.js数据类型6.js运算符7.全局函数8.函数定义9.js数组对象10.js正则对象11.字符串对象12.自定义对象13.BOM浏览器对象模型…...
【C++设计模式】行为型模式:中介者模式
行为型模式:中介者模式 中介者模式通过引入一个中介者对象来集中控制对象之间的交互。这样可以解耦多个对象之间的复杂交互关系,使系统更易于维护和扩展。 假设我们有一个简单的聊天室应用,其中有每个用户可以发送群聊消息给其他用户&#…...
关于C语⾔内存函数 memcpy memmove memset memcmp
memcpy使⽤和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 这个函数在遇到 \0 的时候并不会停下来。 如果source和destination有任何的重叠&am…...
华为---Super VLAN简介及示例配置
目录 1. Super VLAN技术产生背景 2. Super VLAN概念 3. Super VLAN应用场景 4. Super VLAN工作原理 5. Super-VLAN主要配置命令 6. Super-VLAN主要配置步骤 7. 示例配置 7.1 示例场景 7.2 网络拓扑 7.3 配置代码 7.4 代码解析 7.5 测试验证 1. Super VLAN技术产生背…...
PHP 中浮点数 array_sum 求和精度丢失问题
首先给定一个数组: // 该数组中,amount 为 float/double 或 string 不影响结果 $arr [[amount > 1493.66],[amount > 1493.66],[amount > 1493.66] ];求和: $amount array_sum(array_column($arr, amount));我们已知晓的结果如下…...
llava1.5论文阅读
Improved Baselines with Visual Instruction Tuning 通过视觉指令微调增强的基线方法 论文摘要: 我们发现,LLaVA中的全连接视觉语言连接器非常强大且数据效率高。 3.3 数据和模型的scaling 受到将线性投影转变为多层感知机(MLP࿰…...
【学术会议投稿链接】React前端框架:构建现代Web应用的强大工具
【即将截稿】第五届经济管理与大数据应用国际学术会议(ICEMBDA 2024)_艾思科蓝_学术一站式服务平台 更多学术会议请看:https://ais.cn/u/nuyAF3 目录 引言 一、React简介 二、React的核心概念 1. 组件化 2. 虚拟DOM(Virtua…...
Linux: network: tcp: sk_tx_skb_cache;4.18.0-283.el8;多分配内存
最近看一个问题,发现下面这个添加cache的commit,在4.18.0-283.el8版本被拿进来到RHEL8。 commit 472c2e07eef045145bc1493cc94a01c87140780a Author: Eric Dumazet <edumazet@google.com> Date: Fri Mar 22 08:56:39 2019 -0700tcp...
电脑报错msvcp100.dll丢失怎么办?这些方法快速修复
在Windows操作系统中,msvcp100.dll是一个重要的动态链接库文件,属于Microsoft Visual C 2010 Redistributable Package的一部分。这个文件提供了C标准库功能,许多应用程序依赖它来运行。如果msvcp100.dll文件丢失或损坏,可能会导致…...
pymc的安装还是pymc3?
(Installation — PyMC 5.17.0 documentation)安装最新版本的pymc(注意,现在pymc3已更名为pymc)。 Name: numpy Version: 1.22.1 Name: pymc Version: 5.6.1 Name: Theano Version: 1.0.5 Name: Theano-PyMC Versi…...
汉语言文学做大数据七年实际工作经验分享普通人快来围观
(一)没有人带你 社会上,都很现实。就是进了公司,有师傅,师傅也没空带你,最多就是有空的时候帮你解决问题。 无论是做啥工作,都要靠自己努力。努力不会成为笑话,不努力就是笑话。就…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
