華為OD機試- 計算最接近的數(shù)
給定一個數(shù)組X和正整數(shù)K,請找出使表達式X[i] - x[i +1] ... - X[i + K? 1],結(jié)果最接近于數(shù)組中位數(shù)的下標i,如果有多個i滿足條件,請返回最大的i。
其中,數(shù)組中位數(shù):長度為N的數(shù)組,按照元素的值大小升序排列后,下標為N/2元素的值
補充說明:
1.數(shù)組X的元素均為正整數(shù);
2.X的長度n取值范圍: 2<= n <= 1000;
3.K大于0且小于數(shù)組的大小;
4.i的取值范圍: 0 <=i < 1000;
5.題目的排序數(shù)組X[N]的中位數(shù)是X[N/2].
示例1
輸入:
[50,50,2,3],2
輸出:
1
說明:
1、中位數(shù)為50: [50,50,2,3]升序排序后變成[2,3,50,50],中位數(shù)為下標4/2=2的元素50;
2、計算結(jié)果為1: X[50,50,2,3]根據(jù)題目計算X[i] - ...- X[i + K- 1]得出三個數(shù)
0 (X[0]-X[1]= 50 -50) 、
48 (X[1]-X[2] = 50 -2)
-1 (X[2]-X[3]= 2-3) ,
其中48最接近50,因此返回下標1
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/131213852
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/131382604
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/131382659
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/131382580
C實現(xiàn):https://renjie.blog.csdn.net/article/details/129190260