Skip to content

Commit cc71d64

Browse files
authored
[ PS ] : Non Overlapping Intervals
1 parent e110a5b commit cc71d64

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* ๊ตฌ๊ฐ„์ด ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์†Œํ•œ์˜ ๊ตฌ๊ฐ„์„ ์—†์• ์•ผ ํ•  ๋•Œ, ๋ช‡ ๊ฐœ๋ฅผ ์—†์• ์•ผ ํ•˜๋Š”์ง€ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
3+
* @param {number[][]} intervals
4+
* @return {number}
5+
*/
6+
const eraseOverlapIntervals = function(intervals) {
7+
intervals.sort((a,b) => a[0] - b[0]);
8+
9+
let count = 0;
10+
let prevEnd = intervals[0][1];
11+
12+
for (let i = 1; i < intervals.length; i++) {
13+
const [start, end] = intervals[i];
14+
15+
// ๋ฒ”์œ„๊ฐ€ ๊ฒน์น˜๋Š” ๊ฒฝ์šฐ
16+
if (prevEnd > start) {
17+
count++;
18+
prevEnd = Math.min(prevEnd, end); // end๊ฐ€ ํฐ ๊ฑธ ์‚ญ์ œํ•œ๋‹ค ์น˜๊ธฐ
19+
}
20+
}
21+
22+
return count;
23+
};
24+
25+
// ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
26+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(1)

0 commit comments

Comments
ย (0)