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