array and hashmap November 24, 2022

The employee that worked on the longest task

Time O(n) Space O(1) Open original problem

We will iterate over the logs, and for each log, we will update the start time and end time of the employee. We will also update the longest task time of the employee. After iterating over the logs, we will iterate over the employees to find the employee that worked on the longest task.

class Solution:
    def hardestWorker(self, n: int, logs: List[List[int]]) -> int:
        res = logs[0][0]
        maxTime = logs[0][1]
        for i in range(1, len(logs)):
            if logs[i][1]-logs[i-1][1] > maxTime:
                res = logs[i][0]
                maxTime = logs[i][1]-logs[i-1][1]
            elif logs[i][1]-logs[i-1][1] == maxTime and res>logs[i][0]:
                res = logs[i][0]
        return res

Time complexity: O(n), n is the length of logs
Space complexity: O(1)