区间重合判断 java_java判断多个区间是否有重合
时间: 2023-08-31 21:06:44 浏览: 187
要判断多个区间是否有重合,可以按照起始点排序并逐一比较。以下是一个 Java 代码示例:
```java
public class Interval {
int start;
int end;
public Interval(int start, int end) {
this.start = start;
this.end = end;
}
public static boolean hasOverlap(Interval[] intervals) {
if (intervals == null || intervals.length <= 1) {
return false;
}
// 按照起始点排序
Arrays.sort(intervals, Comparator.comparingInt(i -> i.start));
for (int i = 0; i < intervals.length - 1; i++) {
if (intervals[i].end >= intervals[i + 1].start) {
// 存在重合
return true;
}
}
// 不存在重合
return false;
}
}
```
使用方法:
```java
Interval[] intervals = {
new Interval(1, 3),
new Interval(2, 4),
new Interval(5, 7),
new Interval(6, 8)
};
boolean hasOverlap = Interval.hasOverlap(intervals);
System.out.println(hasOverlap); // 输出 true
```
在上面的代码中,`Interval` 类表示一个区间,`hasOverlap` 方法用于判断多个区间是否有重合。该方法首先对区间数组按照起始点进行排序,然后逐一比较相邻的区间是否有重合,如果有重合就返回 `true`,否则返回 `false`。
阅读全文
相关推荐














