想要精通算法和SQL的成长之路 - 合并区间
admin
2024-02-19 01:14:11
0

想要精通算法和SQL的成长之路 - 合并区间

  • 前言
  • 一. 合并区间

前言

想要精通算法和SQL的成长之路 - 系列导航

一. 合并区间

原题链接

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:

  • 输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
  • 输出:[[1,6],[8,10],[15,18]]
  • 解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

大家可以跟这道题目做个比较:无重叠区间

思路:

  1. 把数组根据左边界进行升序排序。 定义一个结果集,保存对象是一个区间,我们保证它里面的区间是不重复的,并且整体是升序的。
  2. 进行数组遍历。对于当前的区间。我们就应该判断它是否需要被合并。
  3. 如果左边界 > 结果集最后一个区间的右边界。那么无需合并,直接把当前区间加入到结果集。
  4. 如果左边界 <= 结果集最后一个区间的右边界,即两则存在交集。那么我们需要进行数组合并,操作对象是结果集的右边界。其值为Max(当前区间的右边界,当前结果集中最后一个区间的右边界)

翻译成代码就是:

public int[][] merge(int[][] intervals) {if (intervals.length < 2) {return intervals;}// 定义结果集ArrayList res = new ArrayList<>();// 进行区间排序,按照每个区间的左边界来升序排序Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));// 将第一个区间加入到结果集。结果集中的区间是可以改变的。这里是一个初始化动作res.add(intervals[0]);for (int i = 1; i < intervals.length; i++) {// 拿到当前结果集的最后一个区间int[] lastInterval = res.get(res.size() - 1);// 当前遍历到的区间int[] currentInterval = intervals[i];// 左边界 > 结果集最后一个区间的右边界。那么无需合并,直接把当前区间加入到结果集。if (currentInterval[0] > lastInterval[1]) {res.add(currentInterval);} else {// 如果左边界 <= 结果集最后一个区间的右边界,即两则存在交集,更新结果集最后一个区间的右边界,取最大值lastInterval[1] = Math.max(lastInterval[1], currentInterval[1]);}}return res.toArray(new int[res.size()][]);
}

相关内容

热门资讯

小学楼道里涂鸦墙用水粉颜料可以... 小学楼道里涂鸦墙用水粉颜料可以吗,墙上是油漆涂过的不可以,用水粉一擦就掉了,用丙烯颜料,和水粉感觉差...
有什么科幻小故事,短一些? 有什么科幻小故事,短一些? 遇见外星人一天,我在公园里散步。突然,一个像盘子一样发着许多光的东西...
幼儿园安吉室外投放哪些材料 幼儿园安吉室外投放哪些材料幼儿园安吉室外投放材料滚筒、积木、长板、木箱、梯子、沙水、锅、碗、瓢、盆、...
爱情的十字路口我该怎么选择? 爱情的十字路口我该怎么选择?真爱掌握在你自己手中!爱他就努力争取,不顾一切!还不是很爱他,那就等等,...
有没有和《恶魔狂想曲之明日骄阳... 有没有和《恶魔狂想曲之明日骄阳》差不多精彩的小说?女主角很多,个性鲜明,主角多情但不滥情,富于正义文...
功利主义是否认为道德应该是一种... 功利主义是否认为道德应该是一种绝对的命令?最源头的定义是边沁的观点,使所有人的快乐最大化。之后有缪尔...
什么是CC猫啊 什么是CC猫啊CC是一只可爱活泼的猫猫,因为诞生于沪江网校所以全称:沪江网校CC猫。CC猫常常出没于...
美剧迷失第三季好看吗? 美剧迷失第三季好看吗?个人觉得,迷失第一季还不错,很惊异.越往后看越没意思.相信我你会越看越迷失的....
求推荐一些奇幻和爱情主题的动漫 求推荐一些奇幻和爱情主题的动漫刀剑神域 强烈推荐妖精的尾巴哈尔的移动城堡~~强烈推荐刀剑神域!!!...
张晓风的这篇柳运用什么的修辞手... 张晓风的这篇柳运用什么的修辞手法张晓风的这片《柳》运用了比喻,对比的修辞手法。希望我的解答对我有帮助...
我想在手机上看童话书,请问在哪... 我想在手机上看童话书,请问在哪里找?我记得有类似的书,是不是一本红皮的?那个是有点类似杂志或者丛书的...
远古是一个怎样的世界 远古是一个怎样的世界漫漫四十多亿年哪,多长的时间呀,搞不好,以前主宰地球的物种的科技比我们还牛些的!...
有色没胆 有胆没色 有色没胆 有胆没色这两种男人有什么区别?哦这个.有色就是好色也不敢动手.有胆就是胆大不好色.或者是自...
华胥引中君伟的结局 华胥引中君伟的结局君玮最后是和苏仪在一起了。七七微段子里提到的慕言和阿拂家的孩子其实是君玮和苏仪的然...
带烁字的男孩名字 带烁字的男孩名字带烁字的男孩名字,用烁字起名烁(shuò):烁表示光亮、烁亮、烁烁。 繁体:烁;部首...
《披荆斩棘的哥哥》正在热播,看... 《披荆斩棘的哥哥》正在热播,看完这档节目后你有什么观后感?看完这档节目之后,我觉得挺好的,这次的节目...
我女儿的生辰八字:壬午年 丙... 我女儿的生辰八字:壬午年 丙午月 丙寅日 庚寅时 (2002年6月27日农历五月十七日早上...
点读机什么品牌好啊,怎么选啊? 点读机什么品牌好啊,怎么选啊?步步高点读机比较好,选大商场的正品,不要上网或电子市场买。
吴用只是个文弱书生,李逵为何会... 吴用只是个文弱书生,李逵为何会对他言听计从?尽管吴用只是一个文弱书生,但他对李逵忠心耿耿,所以李逵会...
开心星星球里甜心超人魔方玩了4... 开心星星球里甜心超人魔方玩了4秒是哪一集39集,新人。。。第四部《甜心超人的新爱好》