File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
solution/3400-3499/3440.Reschedule Meetings for Maximum Free Time II Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def maxFreeTime (
3
+ self , eventTime : int , startTime : List [int ], endTime : List [int ]
4
+ ) -> int :
5
+ n = len (startTime )
6
+ res = 0
7
+
8
+ left_gaps = [0 ] * n
9
+ left_gaps [0 ] = startTime [0 ]
10
+ for meet in range (1 , n ):
11
+ left_gaps [meet ] = max (
12
+ left_gaps [meet - 1 ], startTime [meet ] - endTime [meet - 1 ]
13
+ )
14
+
15
+ right_gaps = [0 ] * n
16
+ right_gaps [n - 1 ] = eventTime - endTime [- 1 ]
17
+ for meet in range (n - 2 , - 1 , - 1 ):
18
+ right_gaps [meet ] = max (
19
+ right_gaps [meet + 1 ], startTime [meet + 1 ] - endTime [meet ]
20
+ )
21
+
22
+ for meet in range (n ):
23
+ left_gap = (
24
+ left_gaps [meet ] if meet == 0 else startTime [meet ] - endTime [meet - 1 ]
25
+ )
26
+ right_gap = (
27
+ right_gaps [meet ]
28
+ if meet == n - 1
29
+ else startTime [meet + 1 ] - endTime [meet ]
30
+ )
31
+
32
+ interval = 0
33
+
34
+ if (
35
+ meet != 0
36
+ and left_gaps [meet - 1 ] >= (endTime [meet ] - startTime [meet ])
37
+ or meet != n - 1
38
+ and right_gaps [meet + 1 ] >= (endTime [meet ] - startTime [meet ])
39
+ ):
40
+ interval = endTime [meet ] - startTime [meet ]
41
+
42
+ res = max (res , left_gap + interval + right_gap )
43
+
44
+ return res
You can’t perform that action at this time.
0 commit comments