公司笔试题
一、腾讯音乐娱乐(TME)2021暑期实习生招聘技术类笔试(I)
1.找不同
输入描述:
链接:https://www.nowcoder.com/questionTerminal/28baab513c8845de95b02e75043c0da9?answerType=1&f=discussion
来源:牛客网
第一行输入一个正整数 T(1 ≤ T ≤ 1000),代表这份问卷的题目总数。
对于每道题,第一行输入一个正整数 n(1 ≤ n ≤ 1000),代表这道题中的数字个数。
第二行输入 n\mathit nn 个正整数 a1, a2, ..., an(1 ≤ ai ≤ 1000),代表这道题中的每个数字。
输出描述:
对于问卷中的每道问题,一行输出一个整数代表答案;特殊的,如果不存在这样的数字,则输出 -\text 1−1 代表无解。
示例:
输入
2
3
6 6 6
3
6 9 6
输出
-1
9
说明
第一组测试数据,所有数字均为 6,无解。
第二组测试数据,两个数字为 6,一个数字为 9,根据题意可以发现,答案为数字9.
编程中关于字典的相关操作语法说明链接:Python字典及基本操作(超级详细) (biancheng.net)
1 if __name__ == '__main__': 2 T = int(input()) 3 for i in range(T): 4 n = int(input()) 5 line = input().split(' ') 6 list_nums = list(map(int,line)) 7 dict_times = {} 8 for j in list_nums: 9 dict_times[j] = dict_times.setdefault(j,0) + 1 10 min_list = [] 11 for key in dict_times.keys(): 12 if dict_times[key] == 1: 13 min_list.append(key) 14 if len(min_list) == 0: 15 print(-1) 16 else: 17 print(min(min_list))
2.树上三角链
给定一棵包含个节点且以节点为根节点的树。
你需要从中选出个不同的节点,使得其两两之间的最短距离之和最大,并求出这个最大和。
定义树上两点之间的最短距离为这两点之间的简单路径所经过的边的数量。
输入描述:
第一行输入一个正整数。
第二行输入个正整数。节点为节点的父节点。
输出描述:
输出一个整数代表最大和。
示例:
输入
5
4 1 1 4
输出
8
说明:
3个节点为3,2,5
节点3与2的最短距离为3
节点3与5的最短距离为3
节点2与5的最短距离为2
3+3+2=8
(我怀疑例子错了‘。。。。)
3.最小代价
给你一个数组,让第个数加一的代价是,你可以求出让数组a,每个数各不相同的最小代价吗?
输入描述:
第一行一个整数
,表示数组长度
第二行
个整数
,表示数组
第三行个整数,表示第个增加1的代价
输出描述:
一个整数表示结果
示例1
5
1 2 3 4 5
1 1 1 1 1
输出 0
说明:不用任何操作
示例2:
3
1 1 2
4 5 3
输出:7
说明:
先把第1个数字1加1,此时代价为4,a数组为2 1 2。然后再把第三个数字2加1,此时代价为4+3=7,a数组为2 1 3。