计算最接近的数
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目解析和算法源码
华为OD机试 - 计算最接近的数(Java & JS & Python & C & C++)_伏城之外的博客-CSDN博客
题目描述
给定一个数组X和正整数K,请找出使表达式:
X[i] - X[i + 1] - ... - X[i + K - 1]
结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 i.
其中,数组中位数:长度为N的数组,按照元素的值大小升序排列后,下标为 N/2 元素的值
备注
- 数组X的元素均为正整数
- X的长度n取值范围:2 ≤ n ≤ 1000
- K大于0目小于数组的大小
- i 的取值范围: 0 ≤ i < 1000
- 题目的排序数组X[N]的中位数是X[N/2]
用例1
输入
[50,50,2,3],2
输出
1
说明
中位数为50:[50,50,2,3]升序排序后变成[2,3,50,50],中位数为下标4/2=2的元素50
计算结果为1:X [50,50,2,3] 根据题目计算X[i] - ... - X[i + k - 1] 得出三个数0 (X[0] - X[1] = 50 - 50) 、48 (X[1] - X[2] = 50 - 2) 和 -1 (X[2]-X[3] = 2 - 3) ,其中48最接近50,因此返回下标1。
华为OD模拟机考(E卷)【公开赛】2025/1/16 21:00
- 状态
- 已结束
- 规则
- IOI
- 题目
- 3
- 开始于
- 2025-1-16 21:00
- 结束于
- 2025-1-16 23:30
- 持续时间
- 2.5 小时
- 主持人
- 参赛人数
- 11