-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathSolution.java
27 lines (24 loc) · 937 Bytes
/
Solution.java
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
package g0001_0100.s0056_merge_intervals;
// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Sorting
// #Data_Structure_II_Day_2_Array #Level_2_Day_17_Interval #Udemy_2D_Arrays/Matrix
// #Big_O_Time_O(n_log_n)_Space_O(n) #2023_08_11_Time_8_ms_(96.27%)_Space_45.2_MB_(90.13%)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Solution {
public int[][] merge(int[][] intervals) {
Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
List<int[]> list = new ArrayList<>();
int[] current = intervals[0];
list.add(current);
for (int[] next : intervals) {
if (current[1] >= next[0]) {
current[1] = Math.max(current[1], next[1]);
} else {
current = next;
list.add(current);
}
}
return list.toArray(new int[list.size()][]);
}
}