处理用时最长的那个任务的员工【LC2432】
共有
n
位员工,每位员工都有一个从0
到n - 1
的唯一 id 。给你一个二维整数数组
logs
,其中logs[i] = [idi, leaveTimei]
:
idi
是处理第i
个任务的员工的 id ,且leaveTimei
是员工完成第i
个任务的时刻。所有leaveTimei
的值都是 唯一 的。注意,第
i
个任务在第(i - 1)
个任务结束后立即开始,且第0
个任务从时刻0
开始。返回处理用时最长的那个任务的员工的 id 。如果存在两个或多个员工同时满足,则返回几人中 最小 的 id 。
- 思路
求出完成每个任务的用时时长,返回处理用时最长的那个任务的员工的 id 。如果存在两个或多个员工同时满足,则返回几人中 最小 的 id 。 - 实现
class Solution { public int hardestWorker(int n, int[][] logs) { int mx = logs[0][1]; int res = logs[0][0]; for (int i = 1; i < logs.length; i++){ if (logs[i][1] - logs[i - 1][1] > mx){ res = logs[i][0]; mx = logs[i][1] - logs[i - 1][1]; }else if (logs[i][1] - logs[i - 1][1] == mx){ res = Math.min(res, logs[i][0]); } } return res; } }
class Solution { public int hardestWorker(int n, int[][] logs) { int ans = logs[0][0], maxT = logs[0][1]; for (int i = 1; i < logs.length; i++) { int t = logs[i][1] - logs[i - 1][1]; if (t > maxT || t == maxT && logs[i][0] < ans) { ans = logs[i][0]; maxT = t; } } return ans; } } 作者:灵茶山艾府 链接:https://leetcode.cn/problems/the-employee-that-worked-on-the-longest-task/solutions/1878942/mo-ni-by-endlesscheng-ka78/ 来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。