Leetcode 761 Solution
This article provides solution to leetcode question 761 (employee-free-time)
Access this page by simply typing in "lcs 761" in your browser address bar if you have bunnylol configured.
Leetcode Question Link
https://leetcode.com/problems/employee-free-time
Solution
"""
# Definition for an Interval.
class Interval:
def __init__(self, start: int = None, end: int = None):
self.start = start
self.end = end
"""
class Solution:
def employeeFreeTime(self, schedule: '[[Interval]]') -> '[Interval]':
events = []
for emp_schedule in schedule:
for interval in emp_schedule:
events.append((interval.start, -1))
events.append((interval.end, 1))
events.sort()
print(events)
cnt = 0
last_free_ts = None
ans = []
for ts, op in events:
if op == -1:
cnt += 1
if cnt == 1 and last_free_ts is not None and ts - last_free_ts >= 1:
ans.append(Interval(start=last_free_ts, end=ts))
elif op == 1:
cnt -= 1
if cnt == 0:
last_free_ts = ts
return ans