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