华为OD机试 新学校选址
题目
为了解新学期学生暴涨的问题,小乐村要建立所新学校
考虑到学生上学安全问题,需要所有学生家到学校的距离最短.
假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置,
能使得到学校到各个学生家的距离和最短
输入
第一行: 整数 n 取值范围 [1,1000],表示有 n 户家庭。
第二行: 一组整数 m 取值范围[0,10000] ,表示每户家庭的位置,所有家庭的位置都不相同。
输出描述
一个整数,确定的学校的位置
如果有多个位置,则输出最小的
示例一
输入
50 20 40 10 30
输出
20
解题思路
本题的目标是求数组中的中位数。
通过输入得到数组中的元素数量 n,再输入数组的所有元素,存储到列表 sites 中。
然后,调用函数solve_method()
求解数组的中位数。该函数先将数组排序,如果数组元素个数是偶数,则返回数组中第len(sites) // 2 - 1
个数;如果数组元素个数是奇数,则返回数组中第len(sites) // 2
个数。