最新华为OD机试
题目描述
为了解新学期学生暴涨的问题,小乐村要建立所新学校,
考虑到学生上学安全问题,需要所有学生家到学校的距离最短。
假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置,
能使得到学校到各个学生家的距离和最短。
输入描述
第一行: 整数 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数值最小
解题思路
题目要求确定一个最优的位置建学校,使得所有学生家到学校的距离和最小。家庭和学校都在一条直线上,且给定了每个家庭的位置。关键在于如何找到那个使总距离最小的位置。
在一维空间上,如果要最小化一个点到一组点的距离和,最佳位置是这些点的