Back to course home
0% completed
Vote For New Content
Solution with end instead of start
Pete Stenger
Sep 17, 2024
class EmployeeInterval: def __init__(self, interval, employeeIndex, intervalIndex): self.interval = interval # interval representing employee's working hours # index of the list containing working hours of this employee self.employeeIndex = employeeIndex self.intervalIndex = intervalIndex # index of the interval in the employee list def __lt__(self, other): # min heap based on meeting.end return self.interval.end < other.interval.end class Solution: def findEmployeeFreeTime(self, schedule): result = [] heap = [] schedule = [ [ EmployeeInterval(employee_int, i, j) for j, employee_int in enumerate(employee_sch) ] for i, employee_sch in enumerate(schedule) ] for employee_sch in schedule: heappush(heap, employee_sch[0]) while heap: min_interval = heappop(heap) if min_interval.intervalIndex < len(schedule[min_interval.employeeIndex]) - 1: heappush(heap, schedule[min_interval.employeeIndex][min_interval.intervalIndex+1]) if len(heap) > 0 and min_interval.interval.end < heap[0].interval.start: result.append([min_interval.interval.end, heap[0].interval.start]) return result
0
0
Comments
Comments
On this page