华为OD机试2025A卷 - 新学校选址(Java & Python& JS & C++ & C )

华为OD机试2025A卷:新学校选址问题

最新华为上机考试

真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试双机位A卷 -华为OD上机考试双机位A卷

题目描述

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

输入描述

第一行: 整数 n 取值范围 [1 ,1000 ],表示有 n户家庭。
第二行: 一组整数 m 取值范围 [0, 10000 ] ,表示每户家庭的位置,所有家庭的位置都不相同。

输出描述

一个整数,确定的学校的位置。
如果有多个位置,则输出最小的。

示例1

输入

5
0 20 40 10 30

输出

20

说明

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

示例2

输入

1
20

输出

20

说明

只有一组数据,20到20距离最小,为0

示例3

输入

2
0 20

输出

0

说明

有多个地方可选,但是0数值最小

解题思路

题目要求确定一个最优的位置建学校,使得所有学生家到学校的距离和最小。家庭和学校都在一条直线上,且给定了每个家庭的位置。关键在于如何找到那个使总距离最小的位置。

在一维空间上,如果要最小化一个点到一组点的距离和,最佳位置是这些点的中位数。中位数位置到其他点的距离和会比任何其他位置的距离和更小。

  • 偶数个点时,有两个中位数,取其中较小的即可。
  • 奇数个点时,中位数就是排序后的中间位置。

Java

import java.util.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值