对左边界排序,如果下一个区间的左边界在前一个的有边界内,考虑是否要更新边界,如果如果下一个区间的左边界在前一个的有边界外,说明区间无法合并,开始计算下一个区间
public ArrayList<Interval> merge(ArrayList<Interval> intervals) { ArrayList<Interval> res = new ArrayList<>(); Collections.sort(intervals,(a,b)->a.start-b.start); int len = intervals.size(); int i = 0; while (i < len) { int left = intervals.get(i).start; int right = intervals.get(i).end; while (i < len-1 && intervals.get(i+1).start <= right) { right = Math.max(right,intervals.get(i+1).end); i++; } res.add(new Interval(left,right)); i++; } return res; }