Java 实现区间合并
时间: 2023-11-14 20:07:49 浏览: 116
下面是Java代码实现区间合并的方法:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class IntervalMerge {
public int[][] merge(int[][] intervals) {
if(intervals == null || intervals.length == 0) {
return new int[0][];
}
Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]));
List<int[]> res = new ArrayList<>();
int[] curInterval = intervals[0];
for(int i = 1; i < intervals.length; i++) {
int[] interval = intervals[i];
if(curInterval[1] >= interval[0]) {
curInterval[1] = Math.max(curInterval[1], interval[1]);
} else {
res.add(curInterval);
curInterval = interval;
}
}
res.add(curInterval);
return res.toArray(new int[res.size()][]);
}
}
```
该方法的核心思想是先将区间按照左端点从小到大排序,然后遍历所有区间,合并重叠的区间。具体实现中,使用一个变量 `curInterval` 来记录当前区间的左右端点,遍历到新的区间时,如果新区间的左端点小于等于当前区间的右端点,说明两个区间有重叠,将当前区间的右端点更新为两个区间的右端点的较大值,否则说明两个区间没有重叠,将当前区间添加到结果集中,并更新当前区间为新区间。最后将当前区间也添加到结果集中,返回结果。
阅读全文
相关推荐

















