一、题目描述
给定一个数组X和正整数K,请找出使表达式X[i] - X[i+1] ... - X[i + K +1],结果最接近于数组中位数的下标i,如果有多个i满足条件,请返回最大的i。
其中,数组中位数:长度为N的数组,按照元素的值大小升序排列后,下标为N/2元素的值。
二、输入描述
第一行输入一个数组X;
第二行输入正整数K;
三、输出描述
数组中位数的下标i。
四、解题思路
因为数组中位数:长度为N的数组,按照元素的值大小升序排列后,下标为N/2元素的值。
- 比如输入[40,50,15,21,9],升序排序后变为[9,15,21,40,50];
- 中位数为长度为5的数组/2=2的元素21;
给定一个数组X和正整数K,请找出使表达式X[i] - X[i+1] ... - X[i + K +1],结果最接近于数组中位数的下标i,如果有多个i满足条件,请返回最大的i。
[40,50,15,21,9]
K=2
- i为0时,X[0] - X[1] - X[2]- X[3] = 40 - 50 - 15 - 21 = -46;
- i=1时,X[1] - X[2]- X[3]- X[4] = 50 - 15 - 21 - 9 = 5;
- i=2时,X[2]- X[3] - X[4]= 15
博客详细介绍了如何使用滑动窗口算法解决华为OD机试问题,找到使表达式结果最接近数组中位数的下标。通过Java代码实现,给出解题思路和步骤,并展示了输入输出示例。
订阅专栏 解锁全文
4410

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



