56. Merge Intervals
来源:互联网 发布:应用商店要windows更新 编辑:程序博客网 时间:2024/06/12 19:18
Given a collection of intervals, merge all overlapping intervals.
For example,
Given [1,3],[2,6],[8,10],[15,18]
,
return [1,6],[8,10],[15,18]
.
给定一些间隔的集合,合并所有有重叠的间隔。
从题目中给的例子来看,可以发现,如果下一个间隔的start小于当前间隔的end的时候,两个间隔可以合并。题目中给的间隔 是按照间隔的start有序排列的,如果给定的间隔无序并且间隔比较多的话,例如[1,3],[8,10],[2,6],[4,5]......这时需要对间隔按照start进行排序,然后对每个间隔,比较它的end和下一个间隔的start的大小,如果end<下一个间隔的start则将这个新的间隔加入到要返回的结果中,如果不小于,说明两个间隔没有重叠,那么让start,end等于新的间隔的start和end即可。代码如下:
if(intervals.size()<=1){ return intervals; } //按照每个间隔的start的大小,按升序排序(这里使用的是匿名函数) intervals.sort((i1, i2)->Integer.compare(i1.start, i2.start)); List<Interval> res = new LinkedList<Interval>(); int start = intervals.get(0).start; int end = intervals.get(0).end; //比较下一个间隔的start与当前间隔的end for(Interval interval:intervals){ if(interval.start<=end){ end = Math.max(end, interval.end); }else{ res.add(new Interval(start, end)); start = interval.start; end = interval.end; } } //把最后一个间隔加上 res.add(new Interval(start, end)); return res;
阅读全文
0 0
- [LeetCode]56.Merge Intervals
- 56. Merge Intervals Leetcode
- LeetCode --- 56. Merge Intervals
- LeetCode 56.Merge Intervals
- [Leetcode] 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 【leetcode】56. Merge Intervals
- 56. Merge Intervals
- [leetcode] 56.Merge Intervals
- 56. Merge Intervals
- **LeetCode 56. Merge Intervals
- LeetCode 56. Merge Intervals
- 56. Merge Intervals
- leetcode 56. Merge Intervals
- 【LeetCode】56. Merge Intervals
- LeetCode 56. Merge Intervals
- 56. Merge Intervals
- 【leetcode】56. Merge Intervals
- 【Ctrl】 + 【Alt】 + 【F1~F6】 和 【Ctrl】 + 【Alt】 + 【T】打开的终端有什么不同?
- Linux下如何查看计算机的配置信息(cpu物理个数、几核)
- html5制作旋转的div
- 文件批量重命名
- ubuntu16.04之间用主机名ping
- 56. Merge Intervals
- Python 是一门适合做数据挖掘的语言吗?
- 查找数据库中某一字段所在表
- 51node-1174-区间中最大的数(RMQ)
- ffmpeg音频处理——pcm格式与resample(重采样)
- 数组右移
- JAVA里的空白\t\n\r分别代表什么?
- 对象的比较comparable与comparator
- 环境变量配置