Skip to content

Commit b197760

Browse files
committed
merge intervals solution
1 parent 7919536 commit b197760

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

merge-intervals/hyer0705.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Time Complexity: O(n log n)
2+
// Space Complexity: O(n)
3+
function merge(intervals: number[][]): number[][] {
4+
const merged: number[][] = [];
5+
6+
intervals.sort((a, b) => a[0] - b[0]);
7+
8+
for (const [currentStart, currentEnd] of intervals) {
9+
if (merged.length === 0 || merged[merged.length - 1][1] < currentStart) {
10+
merged.push([currentStart, currentEnd]);
11+
} else {
12+
const lastMerged = merged[merged.length - 1];
13+
lastMerged[1] = Math.max(lastMerged[1], currentEnd);
14+
}
15+
}
16+
17+
return merged;
18+
}

0 commit comments

Comments
 (0)