合并区间 给定一个区间集合,合并里面重叠的区间,并返回新的不含重叠区间的集合。public class num8 { public ArrayList<Interval> merge(ArrayLi

本文深入探讨了Java集合类的使用与并发编程的最佳实践,包括如何高效地管理和操作集合数据,以及如何确保多线程环境下的数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class num8 {
public ArrayList<Interval> merge(ArrayList<Interval> intervals){
ArrayList<Interval> res = new ArrayList<Interval>();
if(intervals == null || intervals.isEmpty()) return res;
Comparator<Interval> comparator = new Comparator<Interval>() {
@Override
public int compare(Interval a, Interval b) {
if(a.start < b.start) return -1;
else if(a.start > b.start) return 1;
else{
if(a.end < b.end) return -1;
else if(a.end > b.end) return 1;
else return 0;
}
}
};
Collections.sort(intervals, comparator);
/*
System.out.println("zcf");
for (Interval interval : intervals) {
System.out.println(interval.start + "," + interval.end);
}*/

for(int i = 0 ;i < intervals.size();i++){
Interval current = intervals.get(i);
if(res.isEmpty()){
res.add(current);
}else {
Interval last = res.get(res.size() - 1);
if(last.end >= current.start){
last.end = Math.max(last.end, current.end);
}else{
res.add(current);
}
}
}
return res;
}
public static void main(String[] args) {
Interval[] A = new Interval[4];
A[0] = new Interval(1, 5);
A[1] = new Interval(6, 10);
A[2] = new Interval(4, 6);
A[3] = new Interval(15, 20);
ArrayList<Interval> aIntervals = new ArrayList<Interval>();
for(int i = 0;i < A.length;i++){
aIntervals.add(A[i]);
}
ArrayList<Interval> res = new ArrayList<Interval>();
res = new num8().merge(aIntervals);
System.out.println(res.size());
for (Interval interval : res) {
System.out.println(interval.start + "," + interval.end);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值