class Solution { public List<Interval> merge(List<Interval> intervals) { List<Interval> res=new ArrayList<Interval>(); if(intervals.size()==0) return res; Collections.sort(intervals, (a,b)->a.start-b.start); int start=0; int end=0; for(int i=0;i<intervals.size();i++) { if(i==0) { start=intervals.get(i).start; end=intervals.get(i).end; } else if(end<intervals.get(i).start) { res.add(new Interval(start,end)); start=intervals.get(i).start; end=intervals.get(i).end; } else end=Math.max(end, intervals.get(i).end); } res.add(new Interval(start,end)); return res; } }