Skip to content

Commit f493e8a

Browse files
committed
4. Merge Intervals
1 parent 9eb911e commit f493e8a

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

merge-intervals/sunjae95.js

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* @description
3+
* 각 intervals의 시작점을 기준으로 정렬 후 tmp의 end와 각 start를 비교하여 풀이
4+
*
5+
* n = length of intervals
6+
* time complexity: O(n log n)
7+
* space complexity: O(n)
8+
*/
9+
var merge = function (intervals) {
10+
intervals.sort((a, b) => a[0] - b[0]);
11+
12+
const answer = [];
13+
let mergeTmp = intervals[0];
14+
15+
for (let i = 1; i < intervals.length; i++) {
16+
const [start, end] = intervals[i];
17+
18+
if (mergeTmp[1] >= start) mergeTmp[1] = Math.max(mergeTmp[1], end);
19+
else {
20+
answer.push(mergeTmp);
21+
mergeTmp = [start, end];
22+
}
23+
}
24+
25+
answer.push(mergeTmp);
26+
27+
return answer;
28+
};

0 commit comments

Comments
 (0)