Skip to content

Commit c472fbc

Browse files
committed
feat: merge-intervals solution
1 parent 8b3ca33 commit c472fbc

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

merge-intervals/YeomChaeeun.ts

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* 겹치는 구간 합치기
3+
* 알고리즘 복잡도
4+
* - 시간 복잡도: O(n log n) - sort() 영향
5+
* - 공간 복잡도: O(n)
6+
* @param intervals
7+
*/
8+
function merge(intervals: number[][]): number[][] {
9+
if(intervals.length === 1) return intervals
10+
11+
intervals.sort((a, b) => a[0] - b[0]);
12+
13+
let results: number[][] = []
14+
let [tempX, tempY] = intervals[0]
15+
16+
for(let i = 1; i < intervals.length; i++) {
17+
let [x, y] = intervals[i]
18+
if(x <= tempY) {
19+
tempY = Math.max(tempY, y)
20+
} else {
21+
results.push([tempX, tempY])
22+
tempX = x
23+
tempY = y
24+
}
25+
}
26+
results.push([tempX, tempY])
27+
28+
return results;
29+
}

0 commit comments

Comments
 (0)