本篇题解:最大 N 个数与最小 N 个数的和
题目
给定一个数组,编写一个函数,
计算他的最大N
个数和最小N
个数的和,
需要对数组进行去重。
输入
第一行输入M
,M
表示数组大小
第二行输入M
个数,表示数组内容
第三行输入N
表示需要计算的最大最小N
的个数
输出
输出最大N
个数和最小N
个数的和
示例一
输入
5
95 88 83 64 100
2
输出
342
说明
最大2
个数[100 95]
最小 2 个数[83 64]
输出342
示例一
输入
5
3 2 3 4 2
2
输出
-1
说明
最大2
个数是[4 3]
最小2
个数是[3 2]
有重叠输出为-1
code
num = 5
sz = [95, 88, 83, 64, 64, 100]
qp = 3
sz = list(set(sz))
min_list, max_list = sorted(sz)[:qp], sorted(sz, reverse=True)[:qp]
# print(min_list, max_list)
if min_list[-1] >= max_list[-1]:
print(-1)
else:
print(sum(min_list) + sum(max_list))