首页 > 其他分享 >力扣---2432. 处理用时最长的那个任务的员工

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

时间:2023-02-01 13:22:29浏览次数:40  
标签:力扣 logs 2432 员工 --- 任务 res 时刻 tem

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

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

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

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

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

 

示例 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 。

 

提示:

    2 <= n <= 500
    1 <= logs.length <= 500
    logs[i].length == 2
    0 <= idi <= n - 1
    1 <= leaveTimei <= 500
    idi != idi + 1
    leaveTimei 按严格递增顺序排列

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/the-employee-that-worked-on-the-longest-task
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


 

直接模拟,用三个变量来保存答案。两个分别保存当前最长时间和员工编号,剩下的一个保存前面用掉的时间(这个变量其实也可以省略,直接用logs[i-1][1]来代替即可,只不过这样需要处理一下刚开始i=0的情况,懒得弄了)。

class Solution {
    public int hardestWorker(int n, int[][] logs) {
        int[] res = logs[0];
        int tem = 0;
        for (int i = 0; i < logs.length; i ++) {
            tem = logs[i][1] - tem;
            if (tem > res[1]) {
                 res[0] = logs[i][0];
                 res[1] = tem;
            } else if (tem == res[1]) {
                res[0] = Math.min(logs[i][0], res[0]);
                res[1] = tem;
            }
            tem = logs[i][1];
        }
        return res[0];
    }
}

 

标签:力扣,logs,2432,员工,---,任务,res,时刻,tem
From: https://www.cnblogs.com/allWu/p/17082214.html

相关文章

  • Idea Maven 建本地仓库-导入本地JAR包
    需求IDEA很方便集成了Maven,但是也有相应的问题,比如使用Maven仓没有包的时候不太方便,这时我们需要建立自已的本地仓库来实现实现找到Idea的安装目录下面的Maven......
  • 值得把玩的“小网站”(1) - 奇妙的键盘
    本文是“小网站”系列的第1篇。本系列介绍一些作者主观认为值得把玩的“小网站”,愿朋友们多少都能有所收获。这个系列会长期更新,对这个系列感兴趣的朋友可关注,不迷路。-......
  • mysql缓存-Buffer Pool总结
    1.磁盘太慢,用内存作为缓存很有必要。2.BufferPool本质上是InnoDB向操作系统申请的一段连续的内存空间,可以通过innodb_buffer_pool_size来调整它的大小。3.Buffer......
  • Swift开篇006->枚举
    PART_A枚举简介定义:一组相关的值定义了一个共同的枚举类型语法格式enumDirection{caseEastcaseSouthcaseWestcaseNorthcaseNorthWest,EastSou......
  • Swift开篇007->类和结构体
    PART_A类&结构体对比共同点定义属性:存储值定义方法:提供功能定义附属脚本:访问值定义构造器:生成初始化值通过扩展增加默认实现的功能实现协议以提供某种标准功能类的附加功能......
  • Swift开篇009->方法
    PART_A实例方法简介实例方法:可属于某个特定类、结构体或枚举实例的方法实例方法能隐式访问它所属类型的所有其他实例方法和属性实例方法只能被它所属的类的某个特定实例调......
  • Swift开篇004->集合
    PART_O集合简介集合长度默认可变,若分配成常量,则其大小和内容皆不可变Swift集合类型(必须通过泛型明确存储值)​​Arrays​​:数组,有序可重复​​Sets​​:集合,无序不重复​​......
  • PS操作02 - PS基本功能
    PART_OPS基本快捷键快捷键功能Alt+Del填充前景色Ctrl+Del填充背景色Alt复制并创建新图层Alt+Shift变换选取PART_APS基本功能移动工具(V):Ctrl选中多个图层可调整对齐......
  • Swift开篇005->闭包
    PART_A背景闭包的概念:自包含的函数代码块,可以在代码中被传递和使用.用简洁语法构建内联闭包闭包的三种形式全局函数是一个有名字但不会捕获任何值的闭包嵌套函数是一个有......
  • 一、playwright入门篇-基础知识
    一、playwright是什么?UI自动化的理解:定位元素--->操作元素---->断言根据定位元素方法不同,衍生出来不同的UI自动化框架:元素定位类型的:Selenium、Cypress、Appium、pla......