File tree Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Expand file tree Collapse file tree 1 file changed +29
-0
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ # Time Complexity: O(nlogn)
3
+ # Space Complexity: O(n)
4
+ */
5
+
6
+ class Solution {
7
+ public int [][] merge (int [][] intervals ) {
8
+ int n = intervals .length ;
9
+
10
+ Arrays .sort (intervals , (a , b ) -> a [0 ] - b [0 ]);
11
+
12
+ ArrayList <int []> ans = new ArrayList <>();
13
+ ans .add (new int [2 ]);
14
+ ans .get (0 )[0 ] = intervals [0 ][0 ];
15
+ ans .get (0 )[1 ] = intervals [0 ][1 ];
16
+
17
+ for (int i = 1 ; i < n ; i ++) {
18
+ if (ans .get (ans .size () - 1 )[1 ] < intervals [i ][0 ]) {
19
+ ans .add (new int [2 ]);
20
+ ans .get (ans .size () - 1 )[0 ] = intervals [i ][0 ];
21
+ ans .get (ans .size () - 1 )[1 ] = intervals [i ][1 ];
22
+ } else {
23
+ ans .get (ans .size () - 1 )[1 ] = Math .max (ans .get (ans .size () - 1 )[1 ], intervals [i ][1 ]);
24
+ }
25
+ }
26
+
27
+ return ans .toArray (new int [ans .size ()][]);
28
+ }
29
+ }
You can’t perform that action at this time.
0 commit comments