Merge Intervals
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]] |
思路:想到了先给这些线段做一个排序,按左端点的大小排序,这样就可以将形如1-4, 0-2, 3,5这样的线段集合排序为0-2, 1-4, 3-5。这样就方便我们做merge,考虑这样的情况,只有在前一个线段的右端点大于等于后一个线段的左端点时才做merge, 但是要注意这时候还需要分两种情况:如果前一个线段的右端点大于等于后一个线段的右端点,那么说明后面的这个线段完全包含于前边的线段,这样就只需要将后面的这个线段remove掉,反之我们只需要将前一个线段的后端点设置为后一个线段的后端点,然后remove掉后面的这个线段即可。
代码如下:
1 | /** |