Skip to content

Commit dde63ab

Browse files
committed
add Meeting Rooms II solution
1 parent 1f2bf96 commit dde63ab

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

meeting-rooms-ii/HoonDongKang.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* [Problem]: [919] Meeting Rooms II
3+
* (https://www.lintcode.com/problem/919/)
4+
*/
5+
6+
export class Interval {
7+
start: number;
8+
end: number;
9+
constructor(start: number, end: number) {
10+
this.start = start;
11+
this.end = end;
12+
}
13+
}
14+
15+
// 시간복잡도 O(n log n)
16+
// 공간복잡도 O(n)
17+
export class Solution {
18+
/**
19+
* @param intervals: an array of meeting time intervals
20+
* @return: the minimum number of conference rooms required
21+
*/
22+
minMeetingRooms(intervals: Interval[]): number {
23+
if (intervals.length === 0) return 0;
24+
25+
const starts = intervals.map((i) => i.start).sort((a, b) => a - b);
26+
const ends = intervals.map((i) => i.end).sort((a, b) => a - b);
27+
28+
let count = 0;
29+
let maxCount = 0;
30+
let endIdx = 0;
31+
32+
for (let i = 0; i < intervals.length; i++) {
33+
if (starts[i] < ends[endIdx]) {
34+
count++;
35+
} else {
36+
endIdx++;
37+
}
38+
39+
maxCount = Math.max(maxCount, count);
40+
}
41+
42+
return maxCount;
43+
}
44+
}

0 commit comments

Comments
 (0)