每日一题 2019 - 04 - 02
题目:
Given a collection of intervals, merge all overlapping intervals.
Example 1:
1 | Input: [[1,3],[2,6],[8,10],[15,18]] |
Example 2:
1 | Input: [[1,4],[4,5]] |
解答:
这个题让我们做数组里面的区间合并,思路大致如下:
首先对整个
Intervals
进行排序,排序规则为start
小的在前面,这样保证我们在后面运算时候一定可以维持数据的有序性其次创立临时变量数组,我们每次都拿着临时变量数组
temp
跟当前待加入的数组intervals[i]
对比:1
2
3
4
5
6
7
8
9
10if( intervals[i].start >= temp[temp.size()-1].start && intervals[i].end > temp[temp.size()-1].end)
{
temp[temp.size()-1].end = intervals[i].end ;
}
else if(intervals[i].start < temp[temp.size()-1].start && intervals[i].end > temp[temp.size()-1].end)
{
temp[temp.size()-1].start = intervals[i].start ;
temp[temp.size()-1].end = intervals[i].end ;
}
代码:
1 | /** |