思路:类似于leetcode的合并数组问题
import java.util.*;
public class no{
static class Interval{
int start;
int end;
public Interval(int start,int end){
this.start=start;
this.end=end;
}
}
public static void main(String[] args){
List<Interval> list=new LinkedList<>();
List<Interval> result=new LinkedList<>();
Scanner sc = new Scanner(System.in);
int m= Integer.parseInt(sc.nextLine());
for(int i=0;i<m;i++){
String[] str=sc.nextLine().split(";");
for(int j=0;j<str.length;j++){
String[] data=str[j].split(",");
Interval interval=new Interval(Integer.parseInt(data[0]),Integer.parseInt(data[1]));
list.add(interval);
}
}
Collections.sort(list, new Comparator<Interval>() {
@Override
public int compare(Interval o1, Interval o2) {
return o1.start-o2.start;
}
});
Interval pre=null;
for(Interval i:list){
if(pre==null || pre.end<i.start){
result.add(i);
pre=i;
}
else if(pre.end<i.end){
pre.end=i.end;
}
}
int count=0;
for(Interval i:result){
if(count==result.size()-1)
System.out.print(i.start+","+i.end);
else
System.out.print(i.start+","+i.end+";");
count++;
}
}
}