Skip to content

Commit 31517ea

Browse files
3440 Reschedule Meetings for Maximum Free Time II
1 parent c2aa916 commit 31517ea

File tree

1 file changed

+30
-0
lines changed
  • solution/3400-3499/3440.Reschedule Meetings for Maximum Free Time II

1 file changed

+30
-0
lines changed

solution/3400-3499/3440.Reschedule Meetings for Maximum Free Time II/README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,37 @@ tags:
111111
#### Python3
112112

113113
```python
114+
from typing import List
114115

116+
class Solution:
117+
def maxFreeTime(self, eventTime: int, startTime: List[int], endTime: List[int]) -> int:
118+
n = len(startTime)
119+
res = 0
120+
121+
left_gaps = [0] * n
122+
left_gaps[0] = startTime[0]
123+
for meet in range(1, n):
124+
left_gaps[meet] = max(left_gaps[meet-1], startTime[meet] - endTime[meet-1])
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(right_gaps[meet+1], startTime[meet+1] - endTime[meet])
130+
131+
for meet in range(n):
132+
left_gap = left_gaps[meet] if meet == 0 else startTime[meet] - endTime[meet-1]
133+
right_gap = right_gaps[meet] if meet == n-1 else startTime[meet+1] - endTime[meet]
134+
135+
interval = 0
136+
137+
if (meet != 0 and left_gaps[meet-1] >= (endTime[meet] - startTime[meet]) or
138+
meet != n-1 and right_gaps[meet+1] >= (endTime[meet] - startTime[meet])
139+
):
140+
interval = endTime[meet] - startTime[meet]
141+
142+
res = max(res, left_gap + interval + right_gap)
143+
144+
return res
115145
```
116146

117147
#### Java

0 commit comments

Comments
 (0)