当前位置:   article > 正文

记录每日LeetCode 2432.处理用时最长的那个任务的员工 Java实现_2432. 处理用时最长的那个任务的员工

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

题目描述:

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

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

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

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

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

初始代码:

  1. class Solution {
  2. public int hardestWorker(int n, int[][] logs) {
  3. }
  4. }

示例1:

输入:n = 10, logs = [[0,3],[2,5],[0,9],[1,15]]
输出:1
解释:
任务 0 于时刻 0 开始,且在时刻 3 结束,共计 3 个单位时间。
任务 1 于时刻 3 开始,且在时刻 5 结束,共计 2 个单位时间。
任务 2 于时刻 5 开始,且在时刻 9 结束,共计 4 个单位时间。
任务 3 于时刻 9 开始,且在时刻 15 结束,共计 6 个单位时间。
时间最长的任务是任务 3 ,而 id 为 1 的员工是处理此任务的员工,所以返回 1 。

示例2:

输入:n = 26, logs = [[1,1],[3,7],[2,12],[7,17]]
输出:3
解释:
任务 0 于时刻 0 开始,且在时刻 1 结束,共计 1 个单位时间。
任务 1 于时刻 1 开始,且在时刻 7 结束,共计 6 个单位时间。
任务 2 于时刻 7 开始,且在时刻 12 结束,共计 5 个单位时间。
任务 3 于时刻 12 开始,且在时刻 17 结束,共计 5 个单位时间。
时间最长的任务是任务 1 ,而 id 为 3 的员工是处理此任务的员工,所以返回 3 。

示例3:

输入:n = 2, logs = [[0,10],[1,20]]
输出:0
解释:
任务 0 于时刻 0 开始,且在时刻 10 结束,共计 10 个单位时间。
任务 1 于时刻 10 开始,且在时刻 20 结束,共计 10 个单位时间。
时间最长的任务是任务 0 和 1 ,处理这两个任务的员工的 id 分别是 0 和 1 ,所以返回最小的 0 。

参考答案:

  1. class Solution {
  2. public int hardestWorker(int n, int[][] logs) {
  3. if(logs.length == 1) return logs[0][0];
  4. int empId = logs[0][0];// 初始化员工id
  5. int max = logs[0][1];// 初始化任务时间
  6. // 对二维数组进行遍历
  7. for(int i = 1; i < logs.length; ++i){
  8. int a = logs[i][1] - logs[i - 1][1];
  9. int b = logs[i][0];
  10. //两种情况:一种是任务时间更大了 另一种是任务时间相同比较员工id
  11. if(a > max){
  12. max = a;
  13. empId = b;
  14. } else if(a == max && empId > b){
  15. empId = b;
  16. }
  17. }
  18. return empId;
  19. }
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/392725
推荐阅读
相关标签
  

闽ICP备14008679号