56. Merge Intervals
class Solution {
public int[][] merge(int[][] intervals) {
List<int[]> res = new ArrayList<int[]>();
//sort the array by the first number of the inner array;
Arrays.sort(intervals, (i1, i2)->Integer.compare(i1[0], i2[0]));
int[] merged = intervals[0];
for(int[] interval: intervals){
if(interval[0]<=merged[1]){
// set merged[1] to the larger element;
merged[1]=Math.max(interval[1], merged[1]);
}else{
res.add(merged);
merged = interval;
}
}
res.add(merged);
return res.toArray(new int[res.size()][]);
}
}
Last updated
Was this helpful?