华为OD机试【最大N个数与最小N个数的和】(java)(100分)

embedded/2024/10/18 7:54:34/

1、题目描述

给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和,需要对数组进行去重。
说明:
● 数组中数字范围[0, 1000]
● 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1
● 输入非法返回-1

2、输入描述

● 第一行输入M, M表示数组大小
● 第二行输入M个数,表示数组内容
● 第三行输入N,N表示需要计算的最大、最小N个数

3、输出描述

输出最大N个数与最小N个数的和。
用例:

输入
5
95 88 83 64 100
2输出
342ps:
最大2个数[100,95],最小2个数[83,64], 输出为342

用例:

输入
5
3 2 3 4 2
2输出
-1ps:
最大2个数[4,3],最小2个数[3,2], 有重叠输出为-1

温馨提示!!!
华为OD机试考试官方会对考生代码查重。华为od机试因为有题库所以有很大的概率抽到原题。如果碰到了题库中的原题,千万不要直接使用题解中的代码,一定要做些修改,比如代码中的变量名,除此之外,代码的组织结构和逻辑也要进行一些改变,所以在日常的刷题中,要提前编写好属于自己的代码。

4、题解

本题简单,排序后遍历分别取最大与最小的n个数求和即可。
代码如下:

java">public static void main(String[] args) {Scanner sc = new Scanner(System.in);int m = Integer.parseInt(sc.nextLine());int[] arr = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();int n = Integer.parseInt(sc.nextLine());List<Integer> arrList = new ArrayList<>();for (int i : arr) {if (!arrList.contains(i)) {arrList.add(i);}}// 排序Collections.sort(arrList);int len = arrList.size();// 若存在重合则输出-1if (n + n > len) {System.out.println(-1);}else {int min = 0;int max = 0;for (int i=0; i<n; i++) {min += arrList.get(i);}for (int i=len-1; i>len-n-1; i--) {max += arrList.get(i);}//System.out.println(min);//System.out.println(max);System.out.println(min + max);}
}

执行结果如下:
在这里插入图片描述


http://www.ppmy.cn/embedded/35833.html

相关文章

Android 编译文件简述(Android.bp)

Android 编译文件简述(Android.bp) Android.bp文件是Android开源项目(AOSP)中用于构建Android系统的一种构建配置文件格式。与旧的Android.mk文件相比,Android.bp文件采用了更加现代化和模块化的方式来描述构建配置,具有更好的可读性和扩展性。Android.bp文件以模块为单位…

【DevOps】探索Linux命令行世界:深入了解Shell的力量

目录 一、Linux Shell 详细介绍 1. Shell基础概念 2. Shell的功能特性 3. 常用Shell命令与技巧 4. 高级Shell特性与实践 二、常见的Shell及其比较 1. Bash (Bourne Again SHell) 2. Zsh (Z Shell) 3. Fish (Friendly Interactive SHell) 4. Ksh (Korn SHell) 5. Csh …

LLM应用-prompt提示:让大模型总结生成Mermaid流程图;充当角色输出

1、prompt提示让大模型总结生成Mermaid流程图 生成内容、总结文章让大模型Mermaid流程图展示&#xff1a; mermaid 美人鱼, 是一个类似 markdown&#xff0c;用文本语法来描述文档图形(流程图、 时序图、甘特图)的工具&#xff0c;您可以在文档中嵌入一段 mermaid 文本来生成 …

aardio爬虫) 实战篇:逆向有道翻译web接口

前言 之前的文章把js引擎(aardio封装库) 微软开源的js引擎(ChakraCore))写好了&#xff0c;这篇文章整点js代码来测一下bug。测试网站&#xff1a;https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻译js逆向&#xff08;MD5加密&#xff0c;AES加密&…

JS hook cookie

JS hook cookie cookie 的值是V&#xff0c;v是动态变化的 可以看到D中生成了cookie的值n 尝试使用RPC定位到cookie。 替换内容&#xff0c;下断点。 将写好的RPC代码直接插入 加入代码&#xff0c;file.virjar.com/sekiro_web_client.js?_123 这个地址是在前端创建客户端…

【C语言】超详解memsetmemcpymemmovememcmp的使⽤

文章目录 &#x1f4dd;前言&#x1f320; memset&#x1f309;memcpy&#x1f309;memmove &#x1f320;memcmp&#x1f6a9;总结 &#x1f4dd;前言 库函数网址查询&#xff1a;https://legacy.cplusplus.com/reference/cstring/memcmp/ 库函数memset&#xff0c;memcpy&…

Qt中的数据库

一. 创建数据库类:QSqlIDatabase类 1.定义数据库是使用什么样的数据库&#xff0c;默认支持:SQLITE&#xff0c;与MYSQL使用静志函数:addDatabase("XXX") 2.创建并打开数据库文件: setDatabase("指定一个数据库文件的路径") 3.open()打开数据库文件 二…

SpringBoot @MockBean 导致ApplicationContext Reload带来的问题的解决方法

在基于SpringBoot的项目中&#xff0c;编写单元测试时&#xff0c;会遇到需要对一些被Spring容器管理的对象进行Mock的处理&#xff0c;但是这些对象可能被引用的比较多。这个时候可以使用 MockBean 来注释相关对象。 如下面的代码片段&#xff1a; package com.example.spri…