23 最大N个数与最小N个数的和

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

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

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

用例
5
输入    95 88 83 64 100    
2
输出    342    
说明    最大2个数[100,95],最小2个数[83,64],输出为342。    
5
输入    32342    
2
输出    -1    
说明    最大2个数[4,3],最小2个数[3,2],有重叠输出为-1。

import java.util.Arrays;
import java.util.HashSet;
import java.util.Scanner;
 
public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
 
    int m = sc.nextInt();
 
    int[] arr = new int[m];
    for (int i = 0; i < m; i++) {
      arr[i] = sc.nextInt();
    }
 
    int n = sc.nextInt();
 
    System.out.println(getResult(m, arr, n));
  }
 
  public static int getResult(int m, int[] arr, int n) {
    HashSet<Integer> set = new HashSet<>();
 
    for (int val : arr) {
      if (val < 0 || val > 1000) return -1;
      set.add(val);
    }
 
    if (set.size() < n * 2) return -1;
 
    Integer[] distinct_arr = set.toArray(new Integer[0]);
 
    Arrays.sort(distinct_arr, (a, b) -> a - b);
 
    int l = 0;
    int r = distinct_arr.length - 1;
    int ans = 0;
 
    while (n > 0) {
      ans += distinct_arr[l] + distinct_arr[r];
      l++;
      r--;
      n--;
    }
 
    return ans;
  }
}

相关推荐

  1. 23 N个数N

    2023-12-08 10:58:03       39 阅读
  2. N个数N个数之和

    2023-12-08 10:58:03       7 阅读
  3. 【C++】n一位能够组成

    2023-12-08 10:58:03       7 阅读
  4. 字节面试题 小于n

    2023-12-08 10:58:03       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 10:58:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 10:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 10:58:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 10:58:03       20 阅读

热门阅读

  1. 在 Sublime Text 4 for macOS 中使用多个光标

    2023-12-08 10:58:03       33 阅读
  2. macOS sandbox 文件夹授权

    2023-12-08 10:58:03       35 阅读
  3. 何隆昌 docker部署TiDB

    2023-12-08 10:58:03       35 阅读
  4. 打包Python项目

    2023-12-08 10:58:03       34 阅读
  5. LeetCode406. Queue Reconstruction by Height

    2023-12-08 10:58:03       32 阅读
  6. 数据结构强化:算法题、应用题

    2023-12-08 10:58:03       34 阅读
  7. Hadoop YARN组件

    2023-12-08 10:58:03       38 阅读
  8. Redisson配置

    2023-12-08 10:58:03       41 阅读