Skip to content

Commit 0335a4a

Browse files
committed
⚡ [56] gpt
1 parent 0c2ad83 commit 0335a4a

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

56/gpt_solution.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
const merge = intervals => {
2+
// Step 1: Sort intervals based on start time
3+
intervals.sort((a, b) => a[0] - b[0]);
4+
5+
// Step 2: Initialize result array
6+
const mergedIntervals = [];
7+
8+
// Step 3: Iterate over intervals
9+
for (let i = 0; i < intervals.length; i++) {
10+
const currInterval = intervals[i];
11+
12+
// Step 4: If no overlap, add to result array
13+
if (mergedIntervals.length === 0 || mergedIntervals[mergedIntervals.length - 1][1] < currInterval[0]) {
14+
mergedIntervals.push(currInterval);
15+
}
16+
// Step 5: If overlap, update end time of previous merged interval
17+
else {
18+
mergedIntervals[mergedIntervals.length - 1][1] = Math.max(mergedIntervals[mergedIntervals.length - 1][1], currInterval[1]);
19+
}
20+
}
21+
22+
// Step 6: Return result array
23+
return mergedIntervals;
24+
};
25+
26+
// Example usage
27+
const intervals = [[1, 3], [2, 6], [8, 10], [15, 18]];
28+
const merged = merge(intervals);
29+
console.log(merged);

0 commit comments

Comments
 (0)