最新华为上机考试
真题目录:点击查看目录
华为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.
订阅专栏 解锁全文
6022

被折叠的 条评论
为什么被折叠?



