专业编程基础技术教程

网站首页 > 基础教程 正文

Python 最大N个数与最小N个数的和

ccvgpt 2025-03-18 20:10:00 基础教程 2 ℃
def sum_max_min():
    # 读取输入
    M = int(input().strip())  
    arr = list(map(int, input().strip().split()))
    N = int(input().strip())  

    # 去重
    unique_arr = list(set(arr))

    # 如果去重后元素不足 2N 个,返回 -1
    if len(unique_arr) < 2 * N:
        print(-1)
        return

    # 排序
    unique_arr.sort()

    # 计算最大 N 个和最小 N 个数的和
    result = sum(unique_arr[:N]) + sum(unique_arr[-N:])
    print(result)

# 调用函数
sum_max_min()

题解思路:

  1. 读取输入

先读取 M(数组大小)和 M 个数组元素。

再读取 N(要求取的最大和最小的 N 个数)。

Python 最大N个数与最小N个数的和

  1. 去重

使用 set() 去重,得到无重复的数组。

  1. 判断非法输入

如果去重后的数组大小小于 2N(无法同时取最大 N 个和最小 N 个),返回 -1。

  1. 计算结果

排序去重后的数组,取前 N 个作为最小值,后 N 个作为最大值。

计算它们的和并输出。


最近发表
标签列表