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