【华为OD机试 2023 Q1考试题 A卷】top前5的优秀学员统计

news/2024/7/20 16:30:35 标签: 华为od, 华为
题目

        公司某部门正在组织新员工每日打卡学习活动,他们开展这项学习活动已经一个月了,现在想统计下这个月优秀的打卡员工。

每个员工会对应一个 id,

每天的打卡记录记录当天打卡员工的 id 集合,一共 30 天。


        请你通过代码帮助统计出打卡次数 top5 的员工:

1、假如打卡次数相同,将较早参与打卡的员工排在前面,

2、如果开始参与打卡的时间还是一样,将 id 较小的员工排在前面。
3、不考虑并列的情况,按规则返回前 5 名员工的 id 即可,

4、如果当月打卡的员工少于 5 个,按规则排序返回所有有打卡记录的员工 id。

        输入 

1、第一行输入为新员工数量 N,表示新员工编号 id 为 0 到 N-1,N 的范围为 [1,100]
2、第二行输入为 30 个整数,表示每天打卡的员工数量,每天至少有 1 名员工打卡
3、之后 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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
6 10
7 10


输出
10 0 1 7 6
1
说明
员工编号范围为 0-10,id 为 10 的员工连续打卡 30 天,排第一,id 为 0,1,6,7 的员工打卡都是两天,id 为 0,1,7 的员工在第一天就打卡,比 id 为 6 的员工早,排在前面,0,1,7 按 id 升序排序,所以输出[10,0,1,7,6]   

实现代码如下
# Time:2023 2023/6/26 9:48
# Author: Jasmay
# -*- coding: utf-8 -*-


from collections import defaultdict

def solve_method(res,n):
    dic = defaultdict(int)
    dic_index = {}
    for i,r in enumerate(res):
        for s in r:
            dic[s] += 1
            if s not in dic_index:
                dic_index[s] = i
        result = []
    for k,v in dic_index.items():
        result.append([k,dic.get(k),v])

    #排序
    result = sorted(result,key=lambda x:(-x[1],x[2],x[0]))
    h = []
    for i in result:
        h.append(i[0])
    return h[:5]

if __name__ == "__main__":
    n = int(input().strip())
    nums = list(map(int,input().split()))
    res = []
    for _ in range(len(nums)):
        res.append(list(map(int,input().split())))
    print(*solve_method(res,n))

 


http://www.niftyadmin.cn/n/468978.html

相关文章

机器学习笔记 - 了解机器学习中的小样本(Few-Shot)学习

一、背景概述 深度学习模型在图像分类、语义分割、对象检测等计算机视觉任务中的成功归功于利用了用于训练网络的大量标记数据——一种称为监督学习的方法。尽管在这个信息技术时代有大量的非结构化数据可用,但注释数据很难获得。 由于这个原因,计算机视觉机器学习项目中数据…

二叉树OJ题:LeetCode--100.相同的树

朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第100道二叉树OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏:数据结构与算法 个 人…

go系列-读取文件

1 概述 2 整个文件读入内存 直接将数据直接读取入内存,是效率最高的一种方式,但此种方式,仅适用于小文件,对于大文件,则不适合,因为比较浪费内存。 2.1 直接指定文化名读取 在 Go 1.16 开始,i…

10年内打造量子超级计算机,行吗?

光子盒研究院 在未来十年内,微软打算建造一台量子超级计算机。 本周四,微软制定了一个开发自己的量子超级计算机的战略蓝图。设计它的团队将花费至少10年的研究时间,来建造一台能够每秒进行一百万次可靠量子操作的机器。 微软声称&#xff0c…

详解MySQL的常用数据类型

文章目录 一、MySQL 数据类型1.1、mysql中编码和字符 二、数值类型2.1、整数类型的长度2.2、浮点型 三、字符串类型3.1、字符串类型长度 四、日期和时间类型4.1、DATETIME 五、二进制数据类型六、使用建议 一、MySQL 数据类型 MySQL支持很多数据类型,以便我们能在复…

使用ROS功能包camera_calibration进行单目相机和双目相机的内参和外参标定

1.概述 本文总结使用ROS标定单目和双目相机的过程,同时提供生成棋盘格文件的方法。 参考链接: [1]使用ros标定相机的内参和外参 [2]ROS下采用camera_calibration进行双目相机标定 2.生成棋盘格文件 棋盘格可以自己买一个,或者打印一个粘在…

GDB使用方法总结

启动 在shell下敲gdb命令即可启动gdb,启动后会显示下述信息,出现gdb提示符。 ➜ example gdb GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3: GNU GPL v…

如何向领导建议数字化转型应着手数据治理?_光点科技

在当今数字化时代,企业的数字化转型已经成为一个迫切的任务。然而,数字化转型不仅仅涉及技术的引入,更需要在数据治理方面进行全面的改进。 一、数据治理是数字化转型的基石。 数据是企业最重要的资产之一,通过对数据的管理和利用…