华为od(D卷)最大N个数和最小N个数的和

文章目录

题目描述

给定一个数组,编写一个函数,来计算他的最大N个数和最小N个数的和,需要对数组进行去重

输入描述

第一行输入M,M表示数组大小

第二行输入M个数,表示数组内容

第三行输入N表示需要计算的最大最小N的个数

输出描述

输出最大N个数和最小N个数的和

示例1

输入

5

95 88 83 64 100

2
输出

342
说明:最大2个数[100 95] 最小2个数[83 64],输出342

示例2

输入

5

3 2 3 4 2

2
输出

-1

说明:最大两个数是[4 3]最小2个数是[3 2],有重叠输出为-1

思路

去重 : 利用set
最大,最小 : 排序。

排序+去重:TreeSet

代码

public class Demo02 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            TreeSet<Integer> treeSet = new TreeSet<>();
            int m = in.nextInt();
            for (int i = 0; i < m; i++) {
                treeSet.add(in.nextInt());
            }
            int n = in.nextInt();

            if (treeSet.size() < 2 * n) {
                System.out.println(-1);
                return;
            }
            int sum = 0;

            for (int i = 0; i < n; i++) {
                sum += treeSet.first();
                treeSet.remove(treeSet.first());
                sum += treeSet.last();
                treeSet.remove(treeSet.last());
            }
            System.out.println(sum);
        }

        in.close();
    }
}
相关推荐
盼海1 分钟前
排序算法(四)--快速排序
数据结构·算法·排序算法
蓝染-惣右介3 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
小林想被监督学习3 分钟前
idea怎么打开两个窗口,运行两个项目
java·ide·intellij-idea
HoneyMoose5 分钟前
IDEA 2024.3 版本更新主要功能介绍
java·ide·intellij-idea
我只会发热7 分钟前
Java SE 与 Java EE:基础与进阶的探索之旅
java·开发语言·java-ee
是老余8 分钟前
本地可运行,jar包运行错误【解决实例】:通过IDEA的maven package打包多模块项目
java·maven·intellij-idea·jar
crazy_wsp9 分钟前
IDEA怎么定位java类所用maven依赖版本及引用位置
java·maven·intellij-idea
.Ayang11 分钟前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型
一直学习永不止步17 分钟前
LeetCode题练习与总结:最长回文串--409
java·数据结构·算法·leetcode·字符串·贪心·哈希表
hummhumm30 分钟前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j