Skip to content

Commit 2c382ee

Browse files
authored
Add Python solution for maxFreeTime function
1 parent a85fbfe commit 2c382ee

File tree

1 file changed

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

1 file changed

+44
-1
lines changed

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

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)