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