/**
* 57. 插入区间
* @author wsq
* @date 2020/11/04
给出一个无重叠的 ,按照区间起始端点排序的区间列表。
在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
示例 1:
输入:intervals = [[1,3],[6,9]], newInterval = [2,5]
输出:[[1,5],[6,9]]
示例 2:
输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
输出:[[1,2],[3,10],[12,16]]
解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
链接:https://leetcode-cn.com/problems/insert-interval
*/
package com.wsq.leetcode;
import java.util.ArrayList;
import java.util.List;
public class InsertInterval {
/**
* 插入空间,一共需要考虑三种情况:
* 1.在待插入的区间左边,无交集 -> interval[1] < newInterval[0]
* 2.与插入如的区间有交集,然后合并两个区间,从而判断接下来的区间情况
* 3.在待插入的区间右边,无交集 -> interval[0] > newInterval[1]
* @param intervals
* @param newInterval
* @return
*/
public int[][] insert(int[][] intervals, int[] newInterval) {
int n = intervals.length;
if(n == 0){
return new int[][]{{newInterval[0], newInterval[1]}};
}
List<int[]> list = new ArrayList();
int start = newInterval[0];
int end = newInterval[1];
boolean flag = true;
for(int[] item: intervals){
if(item[1] < start){
list.add(item);
continue;
}
if(item[0] > end){
if(flag){
flag = false;
list.add(new int[]{start, end});
}
list.add(item);
continue;
}
start = Math.min(start, item[0]);
end = Math.max(end, item[1]);
}
if(flag){
list.add(new int[]{start, end});
}
int[][] ans = new int[list.size()][2];
for(int i = 0; i < list.size(); i++){
ans[i] = list.get(i);
}
return ans;
}
}
相关推荐
KUKA .RSI 软件包
KUKA RSI软件包通过XML文件使得机器人与外部设备(传感器通讯)通讯成为了可能,但仍存在诸多限制,该模块最多允许9台设备进行连接,有限的IO口,匮乏的功能,并且需要投入大量精力琢磨相关说明文档。为此开发人员针对KUKA实时通讯,做了一些开源的接口使得上位机与机械臂的通讯更为简单。
30. 插入区间
给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。样例插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。/** * Definition of Interval:...
从SD更新字库到FLASH,再用LCD显示
用Flash当字库存储载体。思路是先将要用到的字库文件存在SD卡,然后存储到Flash,LCD显示时候从Flash中读取 还挺顺利的,移植的原子的程序,自己稍加修改,主要是我的液晶屏函数,Flash读写函数,还有存储文件的flash地址不一样。一晚上搞定,大小字体都OK。挺高兴哈哈。这几天忙工作事情有点耽搁了学习进展嘿嘿 在text.c的showstr函数中char的字体颜色随意设置的,可以显...
【算法】插入区间
难度:中等。
告别混乱代码!在Arduino IDE中管理多文件项目的5个必备技巧
本文分享了在Arduino IDE中管理多文件项目的5个必备技巧,帮助开发者告别混乱代码。通过代码分割和模块化设计,提升编译效率、降低内存占用,并实现功能解耦。重点介绍了头文件设计、CPP文件实现、调试技巧和工业级目录结构,让你的Arduino项目像乐高积木一样清晰易维护。
MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)
阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。
每天一道算法题系列三十八之插入区间
每天一道算法题系列: 来源:力扣(LeetCode) 本题链接:https://leetcode-cn.com/problems/insert-interval/ 来源是力扣,大家喜欢可以去力扣中文网做相应的其他的题,某浏览器直接搜力扣即可。 本题难度是中等 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval
Keil 丢失编译器版本5、内核文件core_cm3.c报错
若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;若想用编译器v6,就更新4个相关的内核文件:(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)
算法:插入区间
题目 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果重叠,则合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 思路 1,先写一个方法,用于判断两个数组是否重叠,如果重叠,则返回合并后的数组。否则,返回哪个数组2相对于数组1 的位置。 2,遍历二维数组,依次判断是否与数组2重叠,以及重叠的位置。 直到没有重叠的位置。同时,将
ANSYS WORKBENCH——参数化建模以及参数优化(结果导出为Excel)
目录 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 注:印记面的创建 5、模型属性设置 注:设置优化目标 6、回主界面,选择direct optimization模块 1、打开软件workbench 2、找到static structure,双击打开 3、选择材料 4、参数化建模 至此参数化建模就已经完成啦 注:印记面的创建 印记面一般是一个虚拟的区域,参与实际的网格划分,但是只是由于载.
为Skill开发的python脚本一些经验
其中SKILL.md的职责是调度,不是实现,这里面要写清楚如下三点: 脚本会自动生成: 如果缺少依赖: 这样就实现了分工,脚本用来完成格式转换、统计计算、文件生成;Claude做理解用户意图、选择参数、解释结果、处理特殊需求等。Claude 调用脚本时,所有参数都通过命令行传递,本质上都是字符串。但在脚本内部,应该明确转换成正确类型,而不是全程当字符串用。因此,强烈建议使用argparse里声明正确的type,如下: 的 参数会自动做转换和报错,比在代码里手动 更安全,报错信息也更清晰。特别注意如下
每日一题@46插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 示例 2: 输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] 输出:[[1,2],[3,10],[12,16]]
⭐️VMwareWorkstation17.0虚拟机安装搭建Windows 7虚拟机(完整图文详细步骤含配置VMware Tools教程)
本教程为大家提供了从安装VMware Workstation 17.0开始,到在虚拟机上成功搭建Windows 7专业版系统的完整步骤。我们详细介绍了准备阶段所需的软件和硬件要求,以及在VMware中配置和安装Windows 7系统的每一步操作。此外,我们还特别提到了如何在虚拟机上配置VMware Tools,以便更好地与宿主机进行交互。 通过本教程的学习,读者不仅能够掌握在VMware Workstation 17.0上安装Windows 7虚拟机的技能,还能了解到如何配置虚拟机的硬件以及安装VMwar
57. 插入区间【区间合并】
升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。返回插入之后的 intervals。,按照区间起始端点排序的区间列表。你可以创建一个新数组然后返回它。表示另一个区间的开始和结束。个区间的开始和结束,并且。注意 你不需要原地修改。
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
Leetcode 57. 插入区间 C++
Leetcode 57. 插入区间 题目 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 测试样例 1. 输入: intervals = [[1,3],[6,9]], newInterval = [2,5] 输出: [[1,5],[6,9]] 2. 输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] 输出: [
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
【leetcode】57. 插入区间
给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例1: 输入: intervals = [[1,3],[6,9]], newInterval = [2,5] 输出: [[1,5],[6,9]] 示例2: 输入: intervals = [[1,2],[3,5],[6,7]...
排序57.插入区间
Leetcode57.插入区间 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 顺序比较,插入 class Solution { public: vector<vector<int>> insert(vector<vect
Leetcode 57. Insert Interval 插入区间
Leetcode 57. Insert Interval 插入区间 标签: Leetcode 题目地址: https://leetcode-cn.com/problems/insert-interval/ 题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:...
[LeetCode 57] 插入区间
[LeetCode 57] 插入区间题目描述题目分析源码改进改进代码分析难点小结 题目描述 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入: intervals = [[1,3],[6,9]], newInterval = [2,5] 输出: [[1,5],[6,9]] 示例...
LeetCode第57题_插入区间
给你一个,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。
力扣57:插入区间
题目要求在无重叠的有序区间列表中插入新区间并保持不重叠。思路是遍历原区间列表,处理三种情况:1)当前区间右边界小于新区间左边界,直接插入;2)当前区间左边界大于新区间右边界,先插入合并后的新区间再插入当前区间;3)区间重叠时合并左右边界。最后检查是否已插入新区间,若未插入则作为最后一个区间加入。代码通过维护合并后的左右边界和插入标志位,最终生成正确结果。时间复杂度O(n)。
leetcode 57.插入区间
题目描述 leetcode57.插入区间 给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals = [[1,3],[6,9]], newInterval = [2,5] 输出:[[1,5],[6,9]] 示例 2: 输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] 输出:[[1,2
leetcode 第57题插入区间
leetcode 第57题插入区间 问题分析 问题如下(传送门) 这里要将newInerval插入到intervals中,并保持给定的顺序,此外,还可能会涉及到区间的合并。 我们将问题简单化,被插入的序列有两个数,每个数在待插入序列中的位置只会存在两种情况,即在某个区间内,或在区间之外,所以整个问题只会在下面四种情况之一: 左操作数是否在区间内 右操作数是否在区间内 1 1 1 0 0 1 0 0 先把这四种情况放到一边,再来看看,将newInerval插入后,它的左右值是
Leetcode 57-插入区间
给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。在 intervals 中插入区间 newInterval,使得 intervals 依然按照 starti 升序排列,且区间之间不重叠(如果有必要的话,可以合并区间)。
3295



被折叠的 条评论
为什么被折叠?



