华为机考 0904 华为软件笔试
尽可能回想题目,仅供参考。
第一题(100分)
输入:一个原始二叉树和参考二叉树,将原始和参考中同层且等值的节点消除。当存在多个值相同的节点,只能消除多个数量的,消除后的节点变成无效节点。输出:原始二叉树中的有效节点值,按频率从高到低排,相同频率的从大到小排。
第二题(200分)
输入:第一行四个整数N、M、K、L分别为用户的数量、好友记录条数、查询的用户编号和推荐的好友数量。接下来M行,每行包括两个整数x和y,表示二者是好友。输出:对用户K而言匹配度最高的L个用户编号(排序:匹配度从高到低,再编号从小到大,如果不足L个,用0补位)。
补充:对匹配度定义的理解,比如说1和2是好友,3和2是好友,那么3和1的匹配度为1。
测试输入:
8 11 1 3
1 2
1 3
2 3
3 4
3 5
4 5
5 6
6 7
7 8
1 8
2 7
测试输出:
7 4 5
第三题(300分)
题目有点复杂,有n个客户,每个客户1个维修设备,需要根据优先级选择维修顺序,维修工每次只能带k个设备,否则要返回公司,需要求最小的总路程。输入:第一行两个整数n, k。第二行两个整数x, y表示公司坐标。接下来n行,每行三个正整数x_i, y_i, level_i,分别表示坐标和优先级,值越小优先级越高。输出:最短总距离,结果保留1位小数。
#华为求职进展汇总##华为##笔试##算法##秋招#测试输入:
3 2
1 1
3 1 1
1 2 2
3 2 3
测试输出:
9.2