力扣labuladong——一刷day20
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 差分数组工具类
- 一、力扣370. 区间加法
- 二、力扣1109. 航班预订统计
- 三、力扣1094. 拼车
前言
差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减
 这里提供一个工具类方便大家使用
差分数组工具类
class Difference{private int[] diff;public Difference(int[] nums){diff = new int[nums.length];diff[0] = nums[0];for(int i = 1; i < nums.length; i ++){diff[i] = nums[i] - nums[i-1];}}public void increment(int low, int high, int val){diff[low] += val;if(high < diff.length-1){diff[high+1] -= val;}}public int[] result(){int[] res = new int[diff.length];res[0] = diff[0];for(int i = 1; i < diff.length; i ++){res[i] = res[i-1] + diff[i];}return res;}
}
一、力扣370. 区间加法
class Solution {public int[] getModifiedArray(int length, int[][] updates) {int[] res = new int[length];Difference diff = new Difference(res);for(int i = 0; i < updates.length; i ++){diff.increment(updates[i][0],updates[i][1],updates[i][2]);}res = diff.result();return res;}
}
class Difference{private int[] diff;public Difference(int[] nums){diff = new int[nums.length];diff[0] = nums[0];for(int i = 1; i < nums.length; i ++){diff[i] = nums[i] - nums[i-1];}}public void increment(int low, int high, int val){diff[low] += val;if(high < diff.length-1){diff[high+1] -= val;}}public int[] result(){int[] res = new int[diff.length];res[0] = diff[0];for(int i = 1; i < diff.length; i ++){res[i] = res[i-1] + diff[i];}return res;}
}
二、力扣1109. 航班预订统计
class Solution {public int[] corpFlightBookings(int[][] bookings, int n) {int[] res = new int[n];Difference diff = new Difference(res);for(int i = 0; i < bookings.length; i ++){diff.increase(bookings[i][0]-1,bookings[i][1]-1,bookings[i][2]);}res = diff.result();return res;}
}
class Difference{private int[] diff;public Difference(int[] nums){diff = new int[nums.length];diff[0] = nums[0];for(int i = 1; i < nums.length; i ++){diff[i] = nums[i] - nums[i-1];}}public void increase(int low,int high, int val){diff[low] += val;if(high + 1 < diff.length){diff[high+1] -= val;}}public int[] result(){int[] res = new int[diff.length];res[0] = diff[0];for(int i = 1; i < diff.length; i ++){res[i] = res[i-1] + diff[i];}return res;}
}
三、力扣1094. 拼车
class Solution {public boolean carPooling(int[][] trips, int capacity) {int[] res = new int[1001];Difference diff = new Difference(res);for(int i = 0; i < trips.length; i ++){diff.increase(trips[i][1],trips[i][2]-1,trips[i][0]);}res = diff.result();for(int i = 0; i < res.length; i ++){if(res[i] > capacity){return false;}}return true;}
}
class Difference{private int[] diff;public Difference(int[] nums){diff = new int[nums.length];diff[0] = nums[0];for(int i = 1; i < nums.length; i ++){diff[i] = nums[i] - nums[i-1];}}public void increase(int low, int high, int val){diff[low] += val;if(high + 1 < diff.length){diff[high+1] -= val;}}public int[] result(){int[] res = new int[diff.length];res[0] = diff[0];for(int i = 1; i < diff.length; i ++){res[i] = res[i-1] + diff[i];}return res;}
}
相关文章:
力扣labuladong——一刷day20
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言差分数组工具类一、力扣370. 区间加法二、力扣1109. 航班预订统计三、力扣1094. 拼车 前言 差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减…...
 
XSpirit 2智能边缘计算机使用测评
博客主页:https://tomcat.blog.csdn.net 博主昵称:农民工老王 主要领域:Java、Linux、K8S 期待大家的关注💖点赞👍收藏⭐留言💬 目录 拆箱过程介绍视频使用感受 我之前就参加过 Spirit 1 第一代智能边缘计…...
 
python实现MC协议(SLMP 3E帧)的TCP服务端(篇二)
python实现MC协议(SLMP 3E帧)的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样,可以使用现成的pymodbus模块去实现。但是,我们可以根据协议帧进行组包,自己去实现帧的格式,而这一切可以基于socket模…...
 
nodejs express uniapp 图书借阅管理系统源码
开发环境及工具: nodejs,mysql5.7,HBuilder X,vscode(webstorm) 技术说明: nodejs express vue elementui uniapp 功能介绍: 用户端: 登录注册 首页显示轮播图&am…...
 
从零开始的目标检测和关键点检测(一):用labelme标注数据集
从零开始的目标检测和关键点检测(一):用labelme标注数据集 1、可视化标注结果2、划分数据集3、Lableme2COCO,将json文件转换为MS COCO格式 前言:前段时间用到了mmlab的mmdetction和mmpose,因此以一个小的数…...
 
【JVM经典面试题(五十二道)】
文章目录 JVM经典面试题(五十二道)引言1.什么是JVM 内存管理2.能说一下JVM的内存区域吗?3.说一下JDK1.6、1.7、1.8内存区域的变化?4.为什么使用元空间替代永久代作为方法区的实现?5.对象创建的过程了解吗?6…...
 
高效管理:在文件夹名称左边添加关键字,实现批量重命名
在高效的文件管理中,对文件夹进行合理命名和重命名是十分关键的。有时候,我们可能需要在一批文件夹的名称左边添加特定的关键字,以便更好地组织和管理这些文件夹。为了实现这个目标,我们可以使用云炫文件管理器一些简单的步骤来实…...
 
Leetcode1122. 数组的相对排序
Every day a Leetcode 题目来源:1122. 数组的相对排序 解法1:哈希 用集合 set 存储 arr2 中的元素。 遍历数组 arr1 ,设当前元素为 num: 如果 num 在 set 中出现,用哈希表 hash 记录 num 和它出现的次数。否则&a…...
 
CN考研真题知识点二轮归纳(5)
本轮的最后一贴,真题中涉及计网的部分彻底总结完!后期的3轮总结可能会上一些大题,比如路由转发、子网划分什么的,以及重点的背诵内容~ 上期目录: CN考研真题知识点二轮归纳(4)https://jslhyh32…...
windows系统 生成RSA密钥对
在Windows系统上生成密钥对,可以使用多种方法,这里将介绍两种常用的方法: 方法1: 使用PuTTYgen PuTTYgen是PuTTY套件的一部分,是在Windows上生成SSH密钥对的一个流行工具。如果你的目的是SSH密钥对,你可以这样操作&a…...
大文件分片上传并发
我这边使用的是boostrap-fileimput 初始化文件上传框 $(document).ready(function () {$("#file-upload_import").fileinput({uploadUrl: "#",language: "zh", //设置语言showPreview: true,autoReplace: true,// uploadUrl: "/uact/uploa…...
 
数据结构——基于顺序表实现通讯录
一、. 基于动态顺序表实现通讯录 1.1 功能要求 1)⾄少能够存储100个⼈的通讯信息 2)能够保存⽤⼾信息:名字、性别、年龄、电话、地址等 3)增加联系⼈信息 4)删除指定联系⼈ 5)查找制定联系⼈ 6&…...
 
行业追踪,2023-11-03
自动复盘 2023-11-03 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...
 
JSPv2之El
 (一)EL的基本语法 1优点 1 jsp的java太长了,el自己的语言${ 开始 }结束 2el直接返回空字符转,而java直接报错 3使用“lt”代替“<”运算符,如果运算符后面是数字,在运算符 *EL取值时,没有数组的下标越界,没有…...
出现 gpg: cancelled by user时的处理方法
今天在使用git commit -S -m "comment" check in 代码的时候, 莫名其妙出现了以下错误: gpg: cancelled by user经过在网上查询资料, 本质原因是GnuPG没有$(tty)的读写权限,有以下两种解决方法是靠谱的: c…...
 
MySQL中表的增删改查
目录 一、CRUD 二、新增(Create) (1)语法 (2)单行数据全列插入 (3)多行数据指定列插入 三、查询(Retrieve) (1)语法 …...
web.py python服务器两种模板template使用方法
【版权声明】 本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。 更多python应用或算法总结请关注我的博客:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。 web.py是Python Web框架之一,…...
 
Flutter 01 目录结构入门
一、Flutter目录结构: 二、Flutter入口文件、入口方法: 三、Flutter Demo: demo1: import package:flutter/material.dart;//MaterialApp 和 Scaffold两个组件装饰App void main() {runApp(MaterialApp(home: Scaffold(appBar: A…...
 
Esxi安装OpenWrt
最近折腾下软路由主要就是实现局域网内的上网。 1.StarWind V2V Converter下载 先去下载个StarWind V2V Converter,觉得麻烦我在网上有找到一个博主的地址点击这里。 这是官网地址传送门,然后一阵乱输入点击下载 然后 双击之后无脑下一步即可。 2.Op…...
tuple 简易实现(C++ 模板元编程)
std::tuple 在标准库里面,tuple主要有下面四个类模板 or 函数模板 tupletuple_sizetuple_elementget 在后续有实现:tuple_size_v tuple_size::value和tuple_element_t tuple_element::type。 事例Example: auto tup std::tuple<in…...
 
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
 
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
 
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
 
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
 
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
