56. Merge Intervals

LeetCode

sort the intervals by their start value

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals,(a,b)->a[0]-b[0]);
LinkedList<int[]> dq=new LinkedList<>();
for(int[] interval:intervals){
if(dq.size()==0||interval[0]>dq.peekLast()[1]) dq.addLast(interval);
else{
dq.getLast()[1]=Math.max(dq.peekLast()[1],interval[1]);
}
}
int[][] res=new int[dq.size()][2];
int i=0;
for(int[] interval:dq) res[i++]=interval;
return res;
}
}

0%