【编程题目 |100分】最大N个数与最小N个数的和【2021, 2022 H1 考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
【最大N个数与最小N个数的和】
给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。
说明:
- 数组中数字范围[0, 1000]
- 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1
- 输入非法返回-1
输入描述:
- 第一行输入M, M标识数组大小
- 第二行输入M个数,标识数组内容
- 第三行输入N,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
说明
最大2个数[4,3],最小2个数[3,2], 有重叠输出为-1。
C++解法一
#include <bits/stdc++.h> using namespace std; int main() { int M, N; cin >> M;
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA解法一
import java.util.Scanner; import java.util.TreeSet; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int size = scanner.nextInt(); if (size < 2) { System.out.println(-1); return; }
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JAVA解法二
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String m = scanner.nextLine(); String arrayStr = scanner.nextLine(); String n = scanner.nextLine(); int N = Integer.parseInt(n);
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看Python解法一
import sys M = int(sys.stdin.readline().strip("\n")) numlist = list(set(sys.stdin.readline().strip("\n").split(" ")))
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看Python解法二
m = int(input()) nums = list(map(int, input().split())) n = int(input())
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看JavaScript
let m = Number(readLine()); let nums = readLine().split(" ").map(i=>parseInt(i)); let n = Number(readLine());
剩余50%内容,购买单篇文章或订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。