File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments