LeetCode 2432. 处理用时最长的那个任务的员工缩略图

共有 n 位员工,每位员工都有一个从 0 到 n - 1 的唯一 id 。

给你一个二维整数数组 logs ,其中 logs[i] = [idi, leaveTimei] :

  • idi 是处理第 i 个任务的员工的 id ,且
  • leaveTimei 是员工完成第 i 个任务的时刻。所有 leaveTimei 的值都是 唯一 的。

注意,第 i 个任务在第 (i - 1) 个任务结束后立即开始,且第 0 个任务从时刻 0 开始。

返回处理用时最长的那个任务的员工的 id 。如果存在两个或多个员工同时满足,则返回几人中 最小 的 id 。

2432. 处理用时最长的那个任务的员工 – 力扣(Leetcode)

LeetCode 2432. 处理用时最长的那个任务的员工插图

OpenCV步步精深-可心科创工作室

LeetCode 2432. 处理用时最长的那个任务的员工插图1

OpenCV步步精深-可心科创工作室

思路:

重新构建字典,按题意跳出结果就行了。

python3实现:

class Solution:
    def hardestWorker(self, n: int, logs: List[List[int]]) -> int:
        # 重新构建字典
        result = {}
        start = 0
        for idx in range(len(logs)):
            elem = logs[idx]
            yuangong = elem[0]
            end = elem[1]
            if yuangong in result:
                result[yuangong] = max(end-start,result[yuangong])
            else:

                result[yuangong]=end-start
            start = end
        print(result)
        result_keys = list(result.keys())
        result_values = list(result.values())
        max_value = max(result_values)
        
        if result_values.count(max_value) > 1:
            tmp = []
            i = 0
            while i <= len(result_values) - 1:
                if result_values[i] == max_value:
                    tmp.append(i)
                i += 1
            tmp2 = []
            for each in tmp:
                tmp2.append(result_keys[each])
            return min(tmp2)
        else:
            key_id = result_values.index(max_value)
            return result_keys[key_id]
LeetCode 2432. 处理用时最长的那个任务的员工插图2

OpenCV步步精深-可心科创工作室

更多干货见 OpenCV步步精深

作者 admin

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注