首页 前端知识 华为OD机试C卷-- 最大N个数与最小N个数的和(Java & JS & Python)

华为OD机试C卷-- 最大N个数与最小N个数的和(Java & JS & Python)

2024-05-31 20:05:55 前端知识 前端哥 713 140 我要收藏

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。

说明:

  • 数组中数字范围[0, 1000]
  • 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1
  • 输入非法返回-1

输入描述

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

输出描述
输出最大N个数与最小N个数的和

题目解析
题目要求给定一个数组,计算并返回数组中不重复的最大N个数与最小N个数的和。首先,我们需要对数组进行去重,然后分别找到数组中的最大N个数和最小N个数。需要注意的是,这两个集合不能有重叠,如果有重叠则输入非法,返回-1。

算法步骤
1.读取数组大小和数组内容。
2.读取需要计算的最大、最小N个数。
3.对数组进行去重。
4.找出去重后数组中的最大N个数和最小N个数(这里我们使用优先队列(最小堆和最大堆)来分别存储最大和最小的N个数)。
5.检查这两个集合是否有重叠。
6.如果没有重叠,计算并返回它们的和;如果有重叠或输入非法,则返回-1。

Java算法源码

<
转载请注明出处或者链接地址:https://www.qianduange.cn//article/10278.html
标签
评论
发布的文章

npmjs官网(查询依赖包)

2024-06-07 00:06:56

npx使用及原理

2024-06-07 00:06:36

npm 包管理工具

2024-06-07 00:06:33

vue 思极地图开发

2024-06-07 00:06:28

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!