File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * <a href="https://leetcode.com/problems/merge-intervals/">week11-4. merge-intervals</a>
3
+ * <li>Description: return an array of the non-overlapping intervals</li>
4
+ * <li>Topics: Array, Sorting </li>
5
+ * <li>Time Complexity: O(NlogN), Runtime 10ms </li>
6
+ * <li>Space Complexity: O(N), Memory 46.18MB </li>
7
+ */
8
+ class Solution {
9
+ public int [][] merge (int [][] intervals ) {
10
+ Arrays .sort (intervals , (i1 , i2 ) -> i1 [0 ] - i2 [0 ]);
11
+
12
+ List <int []> merge = new ArrayList <>();
13
+ merge .add (intervals [0 ]);
14
+
15
+ for (int i = 1 ; i < intervals .length ; i ++) {
16
+ int [] prev = merge .get (merge .size () - 1 );
17
+ int [] curr = intervals [i ];
18
+
19
+ if (curr [0 ] <= prev [1 ]) {
20
+ prev [1 ] = Math .max (prev [1 ], curr [1 ]);
21
+ } else {
22
+ merge .add (curr );
23
+ }
24
+ }
25
+
26
+ return merge .toArray (new int [merge .size ()][]);
27
+ }
28
+ }
You can’t perform that action at this time.
0 commit comments