华为OD机试真题-服务中心的最佳位置【2023Q2】【JAVA、Python、C++】

题目描述:

一家快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心 到所有区域的距离的总和最小。

给你一个数组 positions ,其中 positions[i] = [left, right] 表示第 i 个区域在街道上的位置,其中 left 代表区域的左侧的起点, right 表示区域的右侧终点,设择服务中心的位置为 location。

  • 如果第 i 个区域的右侧起点 right 满足 right < location ,则第 i 个区域到服务中心的距离为 location - right;
  • 如果第 i 个区域的左侧起点 left 满足 left > location ,则第 i 个区域到服务中心的距离为 left - location;
  • 如果第 i 个区域的两侧 left, right 满足 left <= location <= right ,则第 i 个区域到服务中心的距离为 0;

选择最佳的服务中心的位置为 location ,请返回最佳的服务中心位置到所有区域的距离总和的最小值。

输入描述:

先输入区域数组positions的长度n(1 <= n <= 10^5)

接下来n行每行输入成对的left和right值,以空格隔开

-10^9 <left <= 10^9

-10^9 <right<= 10^9
 

输出描述:

输出为location

补充说明:

猜你喜欢

转载自blog.csdn.net/2301_76848549/article/details/130163053
今日推荐