Skip to content

Commit a3e16dd

Browse files
committed
feat: merge-intervals
1 parent 58168eb commit a3e16dd

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

merge-intervals/minji-go.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
}

0 commit comments

Comments
 (0)