当前位置: 首页 > news >正文

[每日一题] 3355. 零数组变换 i

文章目录

      • 1. 题目链接
      • 2. 题目描述
      • 3. 题目示例
      • 4. 解题思路
      • 5. 题解代码
      • 6. 复杂度分析

1. 题目链接


3355. 零数组变换 I - 力扣(LeetCode)

2. 题目描述


给定一个长度为 n 的整数数组 nums 和一个二维数组 queries,其中 queries[i] = [li, ri]

对于每个查询 queries[i]

  • nums 的下标范围 [li, ri] 内选择一个下标 子集。
  • 将选中的每个下标对应的元素值减 1。

零数组 是指所有元素都等于 0 的数组。

如果在按顺序处理所有查询后,可以将 nums 转换为 零数组 ,则返回 true,否则返回 false


3. 题目示例


示例 1 :

输入: nums = [1,0,1], queries = [[0,2]]
输出: true
解释:
对于 i = 0:
选择下标子集 [0, 2] 并将这些下标处的值减 1。
数组将变为 [0, 0, 0],这是一个零数组。

示例 2 :

输入: nums = [4,3,2,1], queries = [[1,3],[0,2]]
输出: false
解释:
对于 i = 0: 
选择下标子集 [1, 2, 3] 并将这些下标处的值减 1。
数组将变为 [4, 2, 1, 0]。
对于 i = 1:
选择下标子集 [0, 1, 2] 并将这些下标处的值减 1。
数组将变为 [3, 1, 0, 0],这不是一个零数组。

4. 解题思路


  1. 问题理解
    • 给定一个整数数组 nums 和一个查询数组 queries,其中每个查询 queries[i] = [l, r] 表示对 nums 的子数组 nums[l..r] 中的每个元素减一。
    • 判断是否可以通过执行所有查询,将 nums 的所有元素变为 0。
  2. 关键思路
    • 差分数组:使用差分数组高效处理区间操作(如批量减一)。
    • 前缀和计算:通过差分数组的前缀和得到每个位置的实际操作次数。
    • 可行性判断:检查每个元素的值是否可以被对应的操作次数减到 0。
  3. 算法流程
    • 初始化差分数组 diff(长度为 n + 1)。
    • 遍历每个查询 [l, r],更新差分数组:
      • diff[l]++ 表示从 l 开始的所有元素加一(等价于后续操作中减一)。
      • diff[r + 1]-- 表示从 r + 1 开始的所有元素减一(抵消区间外的影响)。
    • 计算差分数组的前缀和 sumD,得到每个位置的实际操作次数。
    • 检查 nums[i] 是否 ≤ sumD(即能否通过操作减到 0)。

5. 题解代码


class Solution {public boolean isZeroArray(int[] nums, int[][] queries) {int n = nums.length;// 差分数组,用于记录区间操作的影响int[] diff = new int[n + 1];// 处理每个查询,更新差分数组for (int[] q : queries) {int l = q[0], r = q[1];// 区间 [l, r] 内的元素都加一diff[l]++;// 差分数组的 r+1 位置减一,用于抵消区间外的影响diff[r + 1]--;}// 计算差分数组的前缀和,得到每个位置的实际操作次数int sumD = 0;for (int i = 0; i < n; i++) {sumD += diff[i];// 如果 nums[i] 的值大于其被减去的次数,则无法变为 0if (nums[i] > sumD) {return false;}}return true;}
}

6. 复杂度分析


  1. 时间复杂度
    • 初始化差分数组:O(n)。
    • 处理查询:O(m),其中 m 是查询数量。
    • 计算前缀和和检查:O(n)。
    • 总体时间复杂度:O(n + m)。
  2. 空间复杂度
    • 差分数组:O(n)。
    • 其他变量:O(1)。
    • 总体空间复杂度:O(n)。

相关文章:

[每日一题] 3355. 零数组变换 i

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 3355. 零数组变换 I - 力扣&#xff08;LeetCode&#xff09; 2. 题目描述 给定一个长度为 n 的整数数组 nums 和一个二维数组 queries&#xff0c;其中 queries[i] [li, ri]。…...

【笔记】与PyCharm官方沟通解决开发环境问题

#工作记录 2025年5月20日 星期二 背景 在此前的笔记中&#xff0c;我们提到了向PyCharm官方反馈了几个关于Conda环境自动激活、远程解释器在社区版中的同步问题以及Shell脚本执行时遇到的问题。这些问题对日常开发流程产生了一定影响&#xff0c;因此决定联系官方支持寻求解…...

mariadb-cenots8安装

更新系统&#xff1a;安装完成 CentOS 8 后&#xff0c;连接到互联网&#xff0c;打开终端并运行以下命令来更新系统&#xff0c;以获取最新的软件包和安全补丁。 bash sudo yum update -y安装 MariaDB&#xff1a;运行以下命令来安装 MariaDB。 bash sudo yum install mariadb…...

Python实现VTK - 自学笔记(4):用Widgets实现三维交互控制

核心知识点 ​​交互器样式(vtkInteractorStyle)​​:自定义鼠标/键盘交互逻辑​​三维控件(3D Widgets)​​:使用预制控件实现复杂交互​​回调机制​​:实现动态数据更新​​参数化控制​​:通过控件调整算法参数import vtk# 1. 创建圆锥体数据源 cone = vtk.vtkConeSour…...

在tp6模版中加减法

实际项目中&#xff0c;我们经常需要标签变量加减运算的操作。但是&#xff0c;在ThinkPHP中&#xff0c;并不支持模板变量直接运算的操作。幸运的是&#xff0c;它提供了自定义函数的方法&#xff0c;我们可以利用自定义函数解决&#xff1a;ThinkPHP模板自定义函数语法如下&a…...

Linux:库与链接

库是预先编译好、可执⾏的⼆进制码&#xff0c;可以被操作系统加载到内存中执⾏。 库有两种&#xff1a; 静态库&#xff1a;.a(Linux)、.lib(Windows) 动态库&#xff1a;.so(Linux)、.dil(Windows) 静态库 1.程序在链接时把库的代码链接到可执⾏⽂件中&#xff0c;运⾏时…...

T008-网络管理常用命令:ping,ipconfig,nslookup,route,netstat

ipconfig&#xff1a;网络诊断命令&#xff0c;显示 IP 地址、掩码、网关信息&#xff0c;清除/显示 DNS 缓存信息&#xff1b; route&#xff1a;主要用于管理路由表&#xff0c;确定数据包如何从源主机通过网络到达目的主机 nslookup&#xff1a;用于查询域名到IP地址&…...

Qt文件:XML文件

XML文件 1. XML文件结构1.1 基本结构1.2 XML 格式规则1.3 XML vs HTML 2. XML文件操作2.1 DOM 方式&#xff08;QDomDocument&#xff09;读取 XML写入XML 2.2 SAX 方式&#xff08;QXmlStreamReader/QXmlStreamWriter&#xff09;读取XML写入XML 2.3 对比分析 3. 使用场景3.1 …...

MySQL 8.0 OCP 英文题库解析(六)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题41~50 试题4…...

微软开放代理网络愿景

&#x1f310; Microsoft的开放式智能代理网络愿景 2025年05月20日 | AI日报 ![](https://i-blog.csdnimg.cn/direct/e7838b88f17f40c9a435f6dc48d26c59.jpeg#pic_center) 欢迎各位人工智能爱好者 微软刚刚在Build 2025大会上开启了备受期待的AI周活动&#xff0c;通过发布大…...

阿尔泰科技助力电厂——520为爱发电!

当城市的霓虹在暮色中亮起&#xff0c;当千万个家庭在温暖中共享天伦&#xff0c;总有一群默默的 "光明守护者" 在幕后坚守 —— 它们是为城市输送能量的电厂&#xff0c;更是以科技赋能电力行业的阿尔泰科技。值此 520 爱意满满的日子&#xff0c;阿尔泰科技用硬核技…...

微软账户无密码化的取证影响

五月初&#xff0c;微软正式宣布&#xff0c;新创建的微软账户现在将默认为无密码&#xff0c;以实现“更简单、更安全的登录”。这一变化延续了Windows 11所设定的方向&#xff0c;即逐步淘汰传统密码&#xff0c;转而采用更安全、更方便用户的身份验证方法&#xff0c;如PIN码…...

idea部署本地仓库和连接放送远程仓库

1.下载git&#xff0c;安装好后任意地方又键会出现两个带git的东西 2.点击bash here的那个&#xff0c;召唤出git的小黑窗&#xff0c;输入 git config --global user.name "你自己取名" git config --global user.email "你自己输入你的邮箱" 3.打开id…...

4大AI智能体平台,你更适合哪一个呐?

好记忆不如烂笔头&#xff0c;能记下点东西&#xff0c;就记下点&#xff0c;有时间拿出来看看&#xff0c;也会发觉不一样的感受. AI的火热程度&#xff0c;应该说是今年IT行业内最热的话题了&#xff0c;以下是根据我对各个智能体平台的了解和熟悉&#xff0c;按照 平台特点、…...

Pandas:Series和DataFrame的概念、常用属性和方法

本文目录&#xff1a; 一、Series和Dataframe的概念二、创建Series对象三、创建Dataframe对象&#xff08;一&#xff09;Series1.Series的常用属性总结如下&#xff1a;2.Series的常用方法总结如下&#xff1a; &#xff08;二&#xff09;Dataframe1.Dataframe的常用属性2.Da…...

Index-AniSora论文速读:探索Sora时代动画视频生成的前沿

AniSora: Exploring the Frontiers of Animation Video Generation in the Sora Era 一、引言 论文开篇指出动画产业近年来的显著增长&#xff0c;动画内容的需求不断攀升&#xff0c;但传统动画制作流程存在劳动密集和耗时的问题&#xff0c;如故事板创建、关键帧生成和中间…...

扫盲笔记之NPM

简介 npm&#xff0c;全名 node package manger。 NPM&#xff08;Node Package Manager&#xff09;是一个 JavaScript 包管理工具&#xff0c;也是 Node.js 的默认包管理器。 NPM 允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具。网址&#xff1a;https://www…...

【Go-2】基本语法与数据类型

基本语法与数据类型 Go语言作为一种静态类型、编译型语言&#xff0c;拥有简洁且高效的语法结构。本章将深入介绍Go的基本语法和数据类型&#xff0c;帮助你建立扎实的编程基础。 2.1 第一个 Go 程序 编写第一个Go程序是学习任何编程语言的传统步骤。通过一个简单的“Hello,…...

Varlet UI-Material Design风格Vue 3框架移动端组件库

#Varlet UI是什么 在现代Web开发中&#xff0c;Vue 3以其强大的组件系统特性&#xff0c;成为了构建可复用、模块化应用界面的首选框架。而在Vue 3的生态系统中&#xff0c;Varlet UI开源组件库以其高效、一致和可维护的设计&#xff0c;为开发者提供了丰富的工具和资源。本文将…...

Golang的文件上传与下载

## Golang的文件上传与下载 文件上传 在Golang中&#xff0c;我们可以使用 net/http 包来实现文件上传功能。文件上传的一般流程包括创建一个接收上传请求的处理器&#xff0c;解析表单数据&#xff0c;然后获取文件并保存到服务器指定的位置。 创建文件上传接口 首先&#xff…...

信奥赛-刷题笔记-栈篇-T3-P4387验证栈序列0520

总题单 ​ 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 栈篇题单 P4387 【深基15.习9】验证栈序列 题目描述 给出两个序列 pushed 和 poped 两个序列&#xff0c;其取值从 1 到 n ( n ≤ 10…...

jenkins授权管理.

使用背景: 在企业中可能多个开发组织共用同一个Jenkins服务器&#xff0c; 不会让用户具有管理员权限的&#xff0c; 需要给用户分配对应的Group组织权限。例如&#xff1a; 张三&#xff0c; 属于devops1这个组织&#xff0c; 仅允许张三对devops1组织相关的jenkins作业进行构…...

Ubuntu24.04安装Dify

1、win10上安装docker不顺利 参考&#xff1a;Dify的安装_dify安装-CSDN博客等资料&#xff0c;Dify依赖Docker运行&#xff0c;在Win10上安装Docker&#xff0c;先安装wsl。在PowerShell(管理员)中输入&#xff1a; wsl --install 或显示“找不到指定文件”&#xff0c;或显示…...

Spring Boot 集成 Elasticsearch【实战】

前言&#xff1a; 上一篇我们简单分享了 Elasticsearch 的一些概念性的知识&#xff0c;本篇我们来分享 Elasticsearch 的实际运用&#xff0c;也就是在 Spring Booot 项目中使用 Elasticsearch。 Elasticsearch 系列文章传送门 Elasticsearch 基础篇【ES】 Elasticsearch …...

Spark离线数据处理实例

工具&#xff1a;Jupyter notebook # 一、需求分析 &#xff08;1&#xff09;分析美妆商品信息&#xff0c;找出每个“商品小类”中价格最高的前5个商品。 &#xff08;2&#xff09;每月订购情况&#xff0c;统计每个月订单的订购数量情况和消费金额。 &#xff08;3&#x…...

window 安装 wsl + cuda + Docker

WSL 部分参考这里安装&#xff1a; Windows安装WSL2 Ubuntu环境 - 知乎 如果出现错误&#xff1a; WslRegisterDistribution failed with error: 0x800701bc 需要运行&#xff1a;https://crayon-shin-chan.blog.csdn.net/article/details/122994190 wsl --update wsl --shu…...

多通道振弦式数据采集仪MCU安装指南

设备介绍 数据采集仪 MCU集传统数据采集器与5G/4G,LoRa/RS485两种通信功能与一体的智能数据采集仪。该产品提供振弦、RS-485等的物理接口&#xff0c;能自动采集并存储多种自然资源、建筑、桥梁、城市管廊、大坝、隧道、水利、气象传感器的实时数据&#xff0c;利用现场采集的数…...

Linux:进程信号---信号的概念与产生

文章目录 1. 信号的概念1.1 信号1.2 认识信号1.3 signal函数1.4 信号的识别&#xff08;硬件角度&#xff09; 2. 信号的产生2.1 键盘组合键2.2 kill命令2.3 系统调用2.4 异常2.5 软件条件 3. core dump 序&#xff1a;在我们的生活中&#xff0c;有很多信号&#xff0c;比如红…...

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本&#xff0c;分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内&#xff0c;2025年01月01日起&#xff0c;不支持新产品基于老分支&#xff08;OpenHa…...

Nvidia - NVLink Fusion

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

C#处理印尼地区的数字分隔符方法

1.在印尼 数字中的 小数点 和 千分位分隔符 的用法与欧美习惯相反 逗号&#xff08;,&#xff09; 用作 小数点&#xff08;如 1,23 表示 1.23&#xff09;。点&#xff08;.&#xff09; 用作 千分位分隔符&#xff08;如 1.000 表示 1000&#xff09;。 查阅资料后发现&#…...

Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景

目录 一、背景&#xff1a;动态页面与反爬技术的崛起二、技术融合架构设计1. 核心组件分工2. 架构图示3. 关键技术点 三、代码实现&#xff1a;分步详解1. 环境配置2. 核心代码结构3. Scrapy项目集成4. Playwright增强功能示例 四、总结&#xff1a;技术融合的优势与挑战1. 优势…...

PHP、JAVA、Shiro反序列化

目录 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞补充&#xff1a; 防御措施&#xff1a; 一、PHP反序列化 主要是分为有类和无类&#xff1a; 1、有类&#xff1a;就有相关的魔术…...

FreeRTOS全攻略:从入门到精通

目录 一、FreeRTOS 基础概念1.1 FreeRTOS 是什么1.2 为什么选择 FreeRTOS 二、与裸机开发的区别2.1 任务管理2.2 中断处理2.3 资源管理 三、FreeRTOS 入门篇3.1 内存管理3.2 任务创建3.3 任务状态3.4 任务优先级3.5 空闲任务和钩子函数3.6 同步与互斥​3.7 队列​3.8 信号量​3…...

机器学习 决策树-分类

决策树-分类 1 概念2 基于信息增益决策树的建立(1) 信息熵(2) 信息增益(3) 信息增益决策树建立步骤 3 基于基尼指数决策树的建立(了解)4 sklearn API5 示例 1 概念 1、决策节点 通过条件判断而进行分支选择的节点。如&#xff1a;将某个样本中的属性值(特征值)与决策节点上的值…...

【RK3588嵌入式图形编程】-Cairo-形状与填充

形状与填充 文章目录 形状与填充1、基本形状2、 纯色填充3、 填充图案4、 填充渐变本文介绍了如何使用Cairo库创建和填充基本形状及复杂形状。首先,通过Cairo API创建矩形、正方形、圆形、弧线和椭圆等基本形状,并使用纯色进行填充。接着,通过组合基本图元,展示了如何绘制星…...

C及C++的音频库与视频库介绍

在 C/C 开发中&#xff0c;处理音频和视频需要依赖专业的库来实现编解码、播放、录制、处理等功能。 一.音频库&#xff08;C/C&#xff09; 1.FFmpeg&#xff08;音频 视频全能库&#xff09; 功能&#xff1a; 支持几乎所有音频 / 视频格式的编解码&#xff08;如 MP3、…...

5.2.4 wpf中MultiBinding的使用方法

在 WPF 中,MultiBinding 允许将多个绑定(Binding)组合成一个逻辑结果,并通过一个转换器(IMultiValueConverter)处理这些值,最终影响目标属性。以下是其核心用法和示例: 核心组件: MultiBinding:定义多个绑定源的集合。 IMultiValueConverter:实现逻…...

小白的进阶之路系列之二----人工智能从初步到精通pytorch中分类神经网络问题详解

什么是分类问题? 分类问题涉及到预测某物是一种还是另一种。 例如,你可能想要: 问题类型具体内容例子二元分类目标可以是两个选项之一,例如yes或no根据健康参数预测某人是否患有心脏病。多类分类目标可以是两个以上选项之一判断一张照片是食物、人还是狗。多标签分类目标…...

日志根因分析:Elastic Observability 的异常检测与日志分类功能

作者&#xff1a;来自 Elastic Bahubali Shetti Elastic Observability 不仅提供日志聚合、指标分析、APM 和分布式追踪&#xff0c;Elastic 的机器学习能力还能帮助分析问题的根因&#xff0c;让你将时间专注于最重要的任务。 随着越来越多的应用程序迁移到云端&#xff0c;收…...

web基础

域名概述 2-1 域名的概念&#xff1a;IP 地址不易记忆&#xff0c;域名是互联网络上识别和定位计算机的层次结构式的字符标识&#xff0c;与该计算机的互联网协议 (IP) 地址相对应&#xff0c;用于在数据传输时标识计算机的电子方位&#xff0c;方便人们记忆和输入。 早期使用…...

WebRTC技术EasyRTC音视频实时通话驱动智能摄像头迈向多场景应用

一、方案背景​ 在物联网蓬勃发展的当下&#xff0c;智能摄像头广泛应用于安防、家居、工业等领域。但传统智能摄像头存在视频传输延迟高、设备兼容性差、网络波动时传输不稳定等问题&#xff0c;难以满足用户对实时流畅交互视频的需求。EasyRTC凭借低延迟、高可靠、跨平台特性…...

替换word中的excel

PostMapping("/make/report/target/performance/first") public AjaxResult makeTargetReportFirst(RequestBody MakeReportDTO makeReportDTO) {Map<String, String> textReplaceMap new HashMap<>();// 替换日期LocalDateTime nowData LocalDateTime…...

【氮化镓】低剂量率对GaN HEMT栅极漏电的影响

2024 年 2 月 22 日,中国科学院新疆理化技术研究所的Li等人在《IEEE ACCESS》期刊发表了题为《Degradation Mechanisms of Gate Leakage in GaN-Based HEMTs at Low Dose Rate Irradiation》的文章,基于实验分析和 TCAD 仿真,研究了低剂量率辐照下基于 GaN 的 p 型栅高电子迁…...

win10使用nginx做简单负载均衡测试

一、首先安装Nginx&#xff1a; 官网链接&#xff1a;https://nginx.org/en/download.html 下载完成后&#xff0c;在本地文件中解压。 解压完成之后&#xff0c;打开conf --> nginx.config 文件 1、在 http 里面加入以下代码 upstream GY{#Nginx是如何实现负载均衡的&a…...

Java 06API时间类

API-时间类 Date jdk8之前1.构造 代表当前的日期和时间 1.Date d1new Date();当前的时间编译成对象 2.Date d2new Date(long time);时间毫秒值代表的Date日期对象 long 类型需要在写L 及8L2.常用方法 public long getTime();获取从1970-1-1到现在的毫秒值总数 void setTime…...

2.11 筹资管理

11.1 筹资主体 11.1.1 企业筹资 1.内源筹资 企业自由资金、应付息税以及未使用或者分配专项基金。自由资金:留存收益、应收账款、闲置资产变卖未使用或者分配专项基金:更新改造基金、生产发展基金以及职工福利基金 2.外源筹资 权益筹资:普通股筹资、优先股筹资债务筹资:借…...

什么是 AI 人工智能?什么是机器学习?什么是深度学习?三者啥关系

AI 到底是个啥&#xff1f;跟咱有啥关系&#xff1f;一文帮你搞懂&#xff01; 最近是不是老听到 “AI”、“人工智能” &#xff0c;“机器学习”&#xff0c;“深度学习”这些词&#xff1f;感觉挺高大上&#xff0c;但又有点懵&#xff1f;别担心&#xff0c;今天咱们就用大…...

C语言经典面试题及答案100道

# C语言经典面试题及答案100道 ## 基础概念部分 1. **什么是C语言&#xff1f;** - 答&#xff1a;C语言是一种通用的、过程式的计算机编程语言&#xff0c;由Dennis Ritchie于1972年在贝尔实验室开发&#xff0c;主要用于系统软件开发。 2. **C语言的特点是什么&#xf…...

RocketMQ 顺序消息实现原理详解

RocketMQ 的顺序消息实现原理主要围绕生产者发送顺序性、Broker存储顺序性和消费者消费顺序性三个核心环节展开&#xff0c;具体分为全局有序和分区有序两种模式。 一、顺序消息的分类 1. 全局有序 定义&#xff1a;某个Topic下所有消息严格按FIFO顺序处理。实现&#xff1a;…...