File tree Expand file tree Collapse file tree 1 file changed +44
-1
lines changed
solution/3400-3499/3440.Reschedule Meetings for Maximum Free Time II Expand file tree Collapse file tree 1 file changed +44
-1
lines changed Original file line number Diff line number Diff line change @@ -109,7 +109,50 @@ tags:
109109#### Python3
110110
111111``` python
112-
112+ class Solution :
113+ def maxFreeTime (
114+ self , eventTime : int , startTime : List[int ], endTime : List[int ]
115+ ) -> int :
116+ n = len (startTime)
117+ res = 0
118+
119+ left_gaps = [0 ] * n
120+ left_gaps[0 ] = startTime[0 ]
121+ for meet in range (1 , n):
122+ left_gaps[meet] = max (
123+ left_gaps[meet - 1 ], startTime[meet] - endTime[meet - 1 ]
124+ )
125+
126+ right_gaps = [0 ] * n
127+ right_gaps[n - 1 ] = eventTime - endTime[- 1 ]
128+ for meet in range (n - 2 , - 1 , - 1 ):
129+ right_gaps[meet] = max (
130+ right_gaps[meet + 1 ], startTime[meet + 1 ] - endTime[meet]
131+ )
132+
133+ for meet in range (n):
134+ left_gap = (
135+ left_gaps[meet] if meet == 0 else startTime[meet] - endTime[meet - 1 ]
136+ )
137+ right_gap = (
138+ right_gaps[meet]
139+ if meet == n - 1
140+ else startTime[meet + 1 ] - endTime[meet]
141+ )
142+
143+ interval = 0
144+
145+ if (
146+ meet != 0
147+ and left_gaps[meet - 1 ] >= (endTime[meet] - startTime[meet])
148+ or meet != n - 1
149+ and right_gaps[meet + 1 ] >= (endTime[meet] - startTime[meet])
150+ ):
151+ interval = endTime[meet] - startTime[meet]
152+
153+ res = max (res, left_gap + interval + right_gap)
154+
155+ return res
113156```
114157
115158#### Java
You can’t perform that action at this time.
0 commit comments