[杨小白]_leetcode_力扣第 314 场周赛-力扣-第一题

234 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

前言

小白算法比较菜,希望能激励我每日更新,从leetcode第一题开始,2022年目标300题,记录从0到1的全过程!!

力扣第 314 场周赛-力扣

力扣第 314 场周赛-力扣

真是坐牢,a了两题,第三题一直超时,结果排名还是1285,比之前三题的时候排名都高。看来这次确实有点难。

后来发现第三题,我一直把stringbuffer和stringbuilder记反了!!提交的时候用的stringbuffer,换一下就可以过了。。。。虽然也就只能上升个一两百的排名吧,1050左右。唉 又没上成分

image.png

第88双周赛的排名 image.png

第313周赛的排名

image.png

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

  • 输入: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 按严格递增顺序排列

代码

第一题读题题,没什么好说的,顺序遍历处理就可以了。以后第一题能暴力则暴力。否则又要像之前一样wa好几次就惨了。

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

第二题连接如下-2433. 找出前缀异或的原始数组

2433. 找出前缀异或的原始数组

第三题连接如下-2434. 使用机器人打印字典序最小的字符串

2434. 使用机器人打印字典序最小的字符串

第四题连接如下-2435. 矩阵中和能被 K 整除的路径

2435. 矩阵中和能被 K 整除的路径

3.结束

第四题看了下解析,感觉还是不难的,看了一眼思路,自己敲能做出来。什么时候能ak啊!!!加油,上分!!!!gogogo,刷题刷题,每天一道,三年1000道!!!!