Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
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