当前位置: 首页 > article >正文

入门力扣自学笔记264 C++ (题目编号: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:

输入: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
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


思路:

首先,我们将结果id和最大时间单位初始化。

其次,从1位置开始,分别统计这个id的员工花费的单位时间,如果花费的时间大于最大时间,或者花费的时间等于最大时间并且该员工的id小于相同时间的员工id。那么我们就令最终结果id变为这个员工的id,并且将最大花销也同步进行更新。

最后,我们返回最终结果即可。


代码:

class Solution {
public:
    int hardestWorker(int n, vector<vector<int>>& logs) {
        int ans = logs[0][0], maxcost = logs[0][1];
        for (int i = 1; i < logs.size(); ++i) {
            int idx = logs[i][0];
            int cost = logs[i][1] - logs[i - 1][1];
            if (cost > maxcost || (cost == maxcost && idx < ans)) {
                ans = idx;
                maxcost = cost;
            }
        }
        return ans;
    }
};

http://www.kler.cn/a/17889.html

相关文章:

  • web安全测试渗透案例知识点总结(上)——小白入狱
  • 基于Spring Boot与Redis的令牌主动失效机制实现
  • 机器学习【激活函数】
  • uniapp在app模式下组件传值
  • Thread类及常见方法
  • 编写红绿起爆线指标(附带源码下载)
  • 网页和原生程序的交互方案
  • 17组漫画卡通字体推荐给设计师
  • 深入理解Python中的生成器和迭代器
  • ipad有必要用手写笔吗?电容笔和Apple pencil区别
  • 智安网络|网络安全威胁越来越多,教你如何全方面应对
  • PMP|敏捷高分口诀,迅速码住!
  • 单例模式的介绍
  • Yolov1 源码讲解 loss.py
  • 【C++】 类练习---封装链表、人物移动
  • gitlab使用docker简单快速部署
  • 数字座舱带动液晶仪表升级,哪些企业「领跑」前装量产份额
  • 20. 资源的调度——Node 亲和性(Node Affinity)
  • 亚马逊选品有什么技巧?品选对了可以带来什么好处?
  • 【图像分割】视觉大模型SEEM(Segment Everything Everywhere All at Once)原理解读
  • 登顶Nature 正刊!百度生物计算用AI首次实现mRNA领域重大进展
  • OpenFeign服务接口调用
  • 【Admin后台管理】Geodjango后台显示地图并加载空间字段
  • 计算机智能系统有哪些SCI期刊? - 易智编译EaseEditing
  • React实战模版
  • 【P6】JMeter HTTP Cookie管理器