前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于OD机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:nansun0903@163.com;备注:CSDN。
题目描述
从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大子数组,并输出其位置和大小。(K个数的几何平均值为K个
的乘积的K次方根)
若有多个子数组的几何平均值均为最大值,则输出长度最小的子数组。
若有多个长度相同的子数组的几何平均值均最大值,则输出最前面的子数组。
输入描述
第一行输入为N、L,N表示numbers的大小 (1<=N<=100000),L表示子数组的最小长度 (1<= L <=N),
之后N行表示numbers中的N个数,每个一行 (10−910^{-9}1
本文介绍了如何解决华为在线开发者测试(OD)中的一道题目,涉及找到正数数组中几何平均值最大的子数组。文章提供详细解题思路,包括完整的Java代码实现,同时解释了在存在多个最优子数组时如何选择符合条件的子数组。对于准备华为面试的读者,这将是一份有价值的参考资料。
订阅专栏 解锁全文

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



