-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMerge_Intervals.java
More file actions
30 lines (26 loc) · 1005 Bytes
/
Merge_Intervals.java
File metadata and controls
30 lines (26 loc) · 1005 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
https://leetcode.com/problems/merge-intervals
class Solution {
public int[][] merge(int[][] intervals) {
if(intervals.length <= 1){
return intervals;
}
Arrays.sort(intervals,(arr1,arr2) -> Integer.compare(arr1[0],arr2[0]));
List<int[]> output_arr = new ArrayList();
int [] current_interval = intervals[0];
output_arr.add(current_interval);
for(int[] interval:intervals){
int current_begin = current_interval[0];
int current_end = current_interval[1];
int next_begin = interval[0];
int next_end = interval[1];
if(current_end >= next_begin){
current_interval[1] = Math.max(current_end,next_end);
}
else{
current_interval = interval;
output_arr.add(current_interval);
}
}
return output_arr.toArray(new int [output_arr.size()][]);
}
}