华为OD机试真题 Java 实现【学校的位置】【2023Q1 100分】

在这里插入图片描述

一、题目描述

为了解决新学期学生暴涨的问题,小乐村要建所新学校。考虑到学生上学安全问题,需要所有学生家到学校距离最短。假设学校和所有的学生家,走在一条直线上。请问,学校要建在什么位置,能使得学校到各个学生家的距离之和最短?

二、输入描述

输入的第一行是一个整数N(1<=N<=1000),表示有N户家庭。

输入的第二行是一个数组(0<= <=10000),表示每户家庭的位置,所有家庭的位置都不相同。

三、输出描述

输出一行,一个整数,表示你确定的学校位置。如有多个位置相同,则输出值最小的位置。

四、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String numStr = sc.nextLine();
    int n = Integer.parseInt(numStr);

    String line = sc.nextLine();
    String[] split = line.split(" ");
    int[] nums = new int[n];
    for (int i = 0; i < n; i++) {
        nums[i] = Integer.parseInt(split[i]);
    }
    Arrays.sort(nums);

    int index = (n - 1) / 2;
    System.out.println(nums[index]);
}

五、效果展示

1、输入

6
0 10 20 30 40 50

2、输出

20

3、说明

20到各个家庭的距离分别为 20 10 0 10 20 30,总和为 90,最小。

有多个位置满足条件,但是20是最小的那个,所以输出20。

华为OD机试真题 Java 实现【学校的位置】【2023Q1 100分】_第1张图片


下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

你可能感兴趣的:(搬砖工逆袭Java架构师,java,华为,开发语言,学习,后端)