题目描述
公司某部门软件教导团正在组织新员工每日打卡学习活动,他们开展这项学习活动已经一个月了,所以想统计下这个月优秀的打卡员工。每个员工会对应一个id,每天的打卡记录记录当天打卡员工的id集合,一共30天。
请你实现代码帮助统计出打卡次数top5的员工。加入打卡次数相同,将较早参与打卡的员工排在前面,如果开始参与打卡的时间还是一样,将id较小的员工排在前面。
注:不考虑并列的情况,按规则返回前5名员工的id即可,如果当月打卡的员工少于5个,按规则排序返回所有有打卡记录的员工id。
输入描述
第一行输入为新员工数量N,表示新员工编号id为0到N-1,N的范围为[1,100]
第二行输入为30个整数,表示每天打卡的员工数量,每天至少有1名员工打卡。
之后30行为每天打卡的员工id集合,id不会重复。
输出描述
按顺序输出打卡top5员工的id,用空格隔开。
用例
| 输入 | 11 4 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 0 1 7 10 0 1 6 10 10 10 10 10 10 |
该博客介绍了如何使用Java解决华为OD机试中的一项问题:统计一个月内打卡次数最多的前5名员工。根据题目描述,需要考虑打卡次数、开始打卡时间和员工ID进行排序,当打卡次数相同时,优先考虑先开始打卡和ID较小的员工。输入包括员工数量、每天打卡人数及打卡员工ID集合,输出是打卡次数前5的员工ID。博客提供了案例,涉及Java编程和算法应用。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



