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

news/2024/11/17 5:29:50/

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/news/1456033.html

相关文章

滑块槽位最优寻找

说明 如果图像中存在多个干扰槽,并且我们只想找到与滑块最匹配的槽,我们可以通过一些额外的策略来实现。一种方法是计算每个槽与滑块的距离,并选择距离最近的那个作为最匹配的槽 代码 import cv2 import numpy as npdef calculate_distance(cx_slider, cy_slider, cx_slot, …

SparkStructuredStreaming状态编程

spark官网关于spark有状态编程介绍比较少&#xff0c;本文是一篇个人理解关于spark状态编程。 官网关于状态编程代码例子: spark/examples/src/main/scala/org/apache/spark/examples/sql/streaming/StructuredComplexSessionization.scala at v3.5.0 apache/spark (github…

​「Python绘图」绘制五角星

python 绘制五角星 一、预期结果 二、核心代码 import turtle print("开始绘制五角星")# 设置画布尺寸 # screen turtle.Screen() # screen.setup(width500, height500)# 创建Turtle对象 pen turtle.Turtle() pen.shape("turtle")# 移动画笔到起始位置 …

【docker】常用的把springboot打包为docker镜像的maven插件

Spring Boot Maven Plugin: Spring Boot 自带的 Maven 插件 (spring-boot-maven-plugin) 支持直接生成 Docker 镜像。通过配置&#xff0c;可以在 Maven 构建过程中自动构建 Docker 镜像&#xff0c;而无需单独编写 Dockerfile。这种方法简化了将应用打包为 Docker 镜像的过程。…

Linux 基础IO篇

1. C语言中的文件操作 1 #include<stdio.h>2 3 int main()4 {5 FILE* pf fopen("log.txt", "w");6 if(NULL pf)7 {8 perror("fopen");9 return 1; 10 }11 fprintf(pf, &quo…

cookie没有携带的问题

背景&#xff1a; build-model应用在hcs迁移的时候&#xff0c;前、后端各自部署了一个新应用&#xff0c;但是调试时候发现没有cookie&#xff0c;导致鉴权失败&#xff01; 注&#xff1a; 后端通过cookie中的token做鉴权的&#xff0c;前端调用接口的时候&#xff0c;查看&…

为什么电子商务安全是速度和保护之间的平衡行为

微信搜索关注公众号网络研究观&#xff0c;获取更多信息。 电子商务世界是一把双刃剑。虽然它为企业和消费者提供了便利和可访问性&#xff0c;但它也为网络犯罪分子提供了诱人的目标。在这个不断变化的环境中&#xff0c;优先考虑安全不再是一种选择&#xff1b;而是一种选择&…

thinkphp5.1 新建模块

thinkphp5.1 新建模块 在ThinkPHP5.1中&#xff0c;创建一个新模块的步骤如下&#xff1a;使用命令行工具创建模块目录结构。 在模块目录中创建相应的文件和目录。 以下是具体的操作步骤和示例代码&#xff1a; 1. 使用命令行工具进入到项目的根目录下&#xff0c;执行以下…