Skip to content

Commit 33f248e

Browse files
committed
solve: merge intervals
1 parent 79e104a commit 33f248e

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

merge-intervals/wogha95.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* 정렬한 다음, 마지막 원소의 end값을 가지고 merge할지 원소 추가할지를 결정합니다.
3+
*
4+
* TC: O(N * logN)
5+
* 정렬에 의해 N * logN 복잡도를 갖습니다.
6+
*
7+
* SC: O(1)
8+
* N: intervals.length
9+
*/
10+
11+
/**
12+
* @param {number[][]} intervals
13+
* @return {number[][]}
14+
*/
15+
var merge = function (intervals) {
16+
intervals.sort((a, b) => a[0] - b[0]);
17+
18+
return intervals.reduce((result, current) => {
19+
if (result.length === 0) {
20+
result.push(current);
21+
return result;
22+
}
23+
24+
const previous = result[result.length - 1];
25+
if (previous[1] >= current[0]) {
26+
result[result.length - 1][1] = Math.max(current[1], previous[1]);
27+
} else {
28+
result.push(current);
29+
}
30+
return result;
31+
}, []);
32+
};

0 commit comments

Comments
 (0)