leetcode 1604. 警告一小时内使用相同员工卡大于等于三次的人

2023-11-16

力扣公司的员工都使用员工卡来开办公室的门。每当一个员工使用一次他的员工卡,安保系统会记录下员工的名字和使用时间。如果一个员工在一小时时间内使用员工卡的次数大于等于三次,这个系统会自动发布一个 警告 。

给你字符串数组 keyName 和 keyTime ,其中 [keyName[i], keyTime[i]] 对应一个人的名字和他在 某一天 内使用员工卡的时间。

使用时间的格式是 24小时制 ,形如 "HH:MM" ,比方说 "23:51" 和 "09:49" 。

请你返回去重后的收到系统警告的员工名字,将它们按 字典序升序 排序后返回。

请注意 "10:00" - "11:00" 视为一个小时时间范围内,而 "23:51" - "00:10" 不被视为一小时内,因为系统记录的是某一天内的使用情况。

示例 1:

输入:keyName = ["daniel","daniel","daniel","luis","luis","luis","luis"], keyTime = ["10:00","10:40","11:00","09:00","11:00","13:00","15:00"]
输出:["daniel"]
解释:"daniel" 在一小时内使用了 3 次员工卡("10:00","10:40","11:00")。
示例 2:

输入:keyName = ["alice","alice","alice","bob","bob","bob","bob"], keyTime = ["12:01","12:00","18:00","21:00","21:20","21:30","23:00"]
输出:["bob"]
解释:"bob" 在一小时内使用了 3 次员工卡("21:00","21:20","21:30")。
示例 3:

输入:keyName = ["john","john","john"], keyTime = ["23:58","23:59","00:01"]
输出:[]
示例 4:

输入:keyName = ["leslie","leslie","leslie","clare","clare","clare","clare"], keyTime = ["13:00","13:20","14:00","18:00","18:51","19:30","19:49"]
输出:["clare","leslie"]
 

提示:

1 <= keyName.length, keyTime.length <= 105
keyName.length == keyTime.length
keyTime 格式为 "HH:MM" 。
保证 [keyName[i], keyTime[i]] 形成的二元对 互不相同 。
1 <= keyName[i].length <= 10
keyName[i] 只包含小写英文字母。


来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/alert-using-same-key-card-three-or-more-times-in-a-one-hour-period
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * @param {string[]} keyName
 * @param {string[]} keyTime
 * @return {string[]}
 */
var alertNames = function(keyName, keyTime) {
    let obj = {}
    let res = []
    for(let i = 0; i < keyName.length; i++) {
        if ( obj[keyName[i]]) {
             obj[keyName[i]].push(keyTime[i])
        }
        else {
            obj[keyName[i]] = [keyTime[i]]
        }
    }
    for (let i in obj) {
        if (obj[i].length < 3) {
            continue
        }
        const list =  obj[i].sort((a, b) => {
            let two =  a.split(':')
            let zero =  b.split(':')
            return two[0]*60 +  (+two[1]) - zero[0]*60 - (+zero[1])
        } )
        for(let j  = 2; j <list.length; j++) {
            let zero = list[j - 2].split(':')
            let two = list[j].split(':')
            let gap = two[0]*60 +  (+two[1]) - zero[0]*60 - (+zero[1])
            if (gap <= 60 && gap>0) {
                res.push(i)
            }
        }
    }
    return [...new Set( res.sort())]
};

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

leetcode 1604. 警告一小时内使用相同员工卡大于等于三次的人 的相关文章

  • 如何将画廊意图中的“打开”更改为“完成”?

    我使用以下意图打开画廊来选择多个图像和视频 Intent intent new Intent intent setType image video intent putExtra Intent EXTRA ALLOW MULTIPLE tr
  • Java Runtime.getRuntime().freeMemory() 问题

    我搜索并看到了一些线程 但没有一个能够解决我遇到的具体问题 我正在尝试使用以下方式监视我的内存使用情况Runtime getRuntime freeMemory Runtime getRuntime maxMemory and Runtim
  • JVisualVM/JConsole 中的 System.gc() 与 GC 按钮

    我目前正在测试处理 XML 模式的概念验证原型 并围绕一个非常消耗内存的树自动机外部库 我已经获得了源代码 构建 我想绘制 真实峰值 堆 随着模式大小的增加 不同运行的内存消耗 使用的指标符合我的目的并且不会影响问题 或者至少是它的合理近似
  • “java.net.MalformedURLException:未找到协议”读取到 html 文件

    我收到一个错误 java net MalformedURLException Protocol not found 我想读取网络上的 HTML 文件 mainfest uses permission android name android
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • 如何根据运行的 jar 的结果让我的 ant 任务通过或失败?

    我正在运行 CrossCheck 无浏览器 js 单元测试 作为 ant 脚本的一部分 如果 CrossCheck 测试失败 我希望 ant 报告失败 这是 build xml 中的相关部分
  • 什么时候可以在 Java 中使用 Thead.stop() ?

    Thread stop 的 Java 文档听起来好像如果您调用 Thread stop 世界就会终结 已弃用 这种方法本质上是不安全的 停止线程 Thread stop 导致它解锁所有已锁定的监视器 作为未经检查的 ThreadDeath
  • ConcurrentHashMap 内部是如何工作的?

    我正在阅读有关 Java 并发性的 Oracle 官方文档 我想知道Collection由返回 public static
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 生成的序列以 1 开头,而不是注释中设置的 1000

    我想请求一些有关 Hibernate 创建的数据库序列的帮助 我有这个注释 下面的代码 在我的实体类中 以便为合作伙伴表提供单独的序列 我希望序列以 1000 开头 因为我在部署期间使用 import sql 将测试数据插入数据库 并且我希
  • 如何在 Spring 属性中进行算术运算?

  • 使用架构注册表对 avro 消息进行 Spring 云合约测试

    我正在查看 spring 文档和 spring github 我可以看到一些非常基本的内容examples https github com spring cloud samples spring cloud contract sample
  • 如何在 Java 中创建接受多个值的单个注释

    我有一个名为 Retention RetentionPolicy SOURCE Target ElementType METHOD public interface JIRA The Key Bug number JIRA referenc
  • 返回 Java 8 中的通用函数接口

    我想写一种函数工厂 它应该是一个函数 以不同的策略作为参数调用一次 它应该返回一个函数 该函数根据参数选择其中一种策略 该参数将由谓词实现 嗯 最好看看condition3为了更好的理解 问题是 它没有编译 我认为因为编译器无法弄清楚函数式
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio

随机推荐

  • rabbitmq 添加用户和设置最大权限,也是解决mq报socket关闭异常

    此方式也是解决整合mq后 自己添加用户后 mq报socket关闭异常 1 安装完可视化mq后台后 直接http localhost 15672 进入 2 默认帐号密码 guest guest 3 首先添加用户 tags设置为admin 最大
  • OpenGL纹理贴图相关基本概念

    1 纹理贴图之所以复杂是因为矩形的纹理数据需要被合理地映射到非矩形的区域上面 纹理就是数据的数组 例如颜色数据亮度数据alpha数据等 纹理的单个数据值 被叫做纹理元素 英文叫做texual 初学者会本能地把纹理当成二维图像 但是纹理也可以
  • JavaScript的外部引入方式

    document writeln hello world
  • 聊聊数据库中的 savepoint

    从全局二级索引讲起 故事要从全局二级索引开始讲起 当我们构建了一个全局二级索引之后 一条逻辑上的数据插入 就会变成两条物理上的数据插入 一条插入到主表 另一条插入到索引表 为了保证主表和索引表数据的一致性 我们往往需要开启分布式事务 再并行
  • keil5 Device Database 灰色问题

    使用 keil5 安装 GD 软件包后打开工程依然无法搜索到对应的芯片型号 GD32F450 The Project references device files or libraries that are not installed D
  • 一个类的实例是另一个类的属性python_Python 的类其实是一个特殊的对象

    Python 中的类是一个特殊的对象 Python 中一切皆对象 class AAA 定义的类属于类对象 obj1 AAA 属于实例对象 在程序运行时 类同样会被加载到内存 类是一个特殊的对象 类对象 类对象在内存中只有一份 使用一个类可以
  • 60-200-072-使用-命令-MySQL使用mysqldumpslow分析慢查询日志文件

    1 概述 因为直接分析日志文件是个体力活 因此mysql为我们提供了相关工具mysqldumpslow来对慢查询日志文件进行分析 2 mysqldumpslow命令 访问次数最多的10条sql语句 usr local mysql bin m
  • fedora18 从文本模式启动而不是图形界面启动

    在之前的linux版本中 如果想要启动操作系统后直接进入文本模式 那就要修改 etc inittab这个文件 把其中的5改成3即可 可是 linux2 6 貌似是 内核之后 这个文件就改了 它不再控制着系统的默认启动模式了 如果在fedor
  • vant-weapp 组件 样式的覆盖(一)

    最近在小程序开发中使用到 vant weapp 组件 但有些样式不符合自己的项目要求 需要对样式进行覆盖 以DropdownMenu组件为例 需求是用户选择菜单项 菜单文字变成 橙色 样式的修改 就是以权重高的 覆盖权重低的
  • “Docker Content Trust + 镜像签名”,打造安全的 Kubernetes 供应链!

    出品丨Docker公司 ID docker cn 编译丨小东 每周一 三 五晚6点10分 与您不见不散 说在前面 两周前 我们分享了一篇名为 镜像扫描 基于策略的镜像提升 打造安全的 Kubernetes 供应链 的文章 它主要介绍了 Do
  • 利用BaseMultiItemQuickAdapter打造二、三级级菜单

    去网上找了下资料 然后自己整理了下二级 三级菜单的实现 直接上代码 Recyclerview记得要导包 implementation com android support recyclerview v7 28 0 0 一 首先在app下的
  • AI赋能的判定机制的倾向性

    最近忙着论文的事情 没有时间写一些技术博客 而且CSDN的图床经常出现问题 也懒得整理了 今天也是说些闲话 讨论下对未来AI赋能的判定机制的一些思考 什么是AI赋能的判定机制 主要其实就是 基于机器智能的技术手段 来代替人类评判事情 可以举
  • 最全的整理:毫米波雷达在检测、分割、深度估计等多个方向的近期工作及简要介绍

    前情回顾 在之前 我已经有介绍过毫米波雷达在2D视觉任务上的一些经典网络 自动驾驶中雷达与相机融合的目标检测工作 多模态目标检测 整理 Naca yu的文章 知乎 总结概括而言 其本质上都是对视觉任务的一种提升和辅助 主要的工作在于如何较好
  • 一些官方的github地址

    阿里巴巴开源github地址 https github com alibaba 腾讯开源github地址 https github com Tencent 奇虎360github地址 https github com Qihoo360 小米
  • xss的绕过方式

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 xss的类型以及常用标签 二 xss常用绕过 总结 前言 xss cross site scripting 中文 跨站脚本攻击 常年位于owasp top
  • 损失函数和正则化

    参考 https www cnblogs com LXP Never p 10918704 html https blog csdn net Heitao5200 article details 83030465 https zhuanla
  • C++-----拷贝构造函数

    拷贝构造函数是一种特殊的构造函数 和构造函数同样是特殊的类成员函数 C 提供的拷贝构造函数用于在建立新对象时将已存在对象的数据成员的值复制给新对象 拷贝函数的特点 拷贝函数是构造函数的一个重载形式 拷贝函数的参数只有一个且必须是类类型对象的
  • ffmpeg命令使用记录

    1 添加水印 ffmpeg i a mp4 acodec copy b v 548k vf movie logo png watermark in watermark overlay 20 20 output mp4 说明 i a mp4
  • TM4C123库函数学习(1)--- 点亮LED+TM4C123的ROM函数简介+keil开发环境搭建

    前言 1 首先 我们需要知道TM4C123是M4的内核 对于绝大多数人而言 入门都是学习STM32F103 这款芯片是采用的M3的内核 所以想必各位对M3内核还是有一定的了解 M4内核就是M3内核的升级版本 他继承了M3的的所有功能 同时还
  • leetcode 1604. 警告一小时内使用相同员工卡大于等于三次的人

    力扣公司的员工都使用员工卡来开办公室的门 每当一个员工使用一次他的员工卡 安保系统会记录下员工的名字和使用时间 如果一个员工在一小时时间内使用员工卡的次数大于等于三次 这个系统会自动发布一个 警告 给你字符串数组 keyName 和 key