当前位置: 首页 > news >正文

华为OD机考双机位C卷 - 几何平均值最大子数组 (Java Python JS GO C++ C)

几何平均值最大子数组

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大子数组,并输出其位置和大小。(K个数的几何平均值为K个数的乘积的K次方根)

若有多个子数组的几何平均值均为最大值,则输出长度最小的子数组。

若有多个长度相同的子数组的几何平均值均为最大值,则输出最前面的子数组。

输入描述

第一行输入为N、L

  • N表示numbers的大小(1 ≤ N ≤ 100000)
  • L表示子数组的最小长度(1 ≤ L ≤ N)

之后N行表示numbers中的N个数,每个一行(10^-9 ≤ numbers[i] ≤ 10^9)

输出描述

输出子数组的位置(从0开始计数)和大小,中间用一个空格隔开。

备注

用例保证除几何平均值为最大值的子数组外,其他子数组的几何平均值至少比最大值小10^-10倍

示例1

输入

3 2 2 2 3

输出

1 2

说明

长度至少为2的子数组共三个,分别是{2,2}、{2,3}、{2,2,3},其中{2,3}的几何平均值最大,故输出其位置1和长度2

示例2

输入

10 2 0.2 0.1 0.2 0.2 0.2 0.1 0.2 0.2 0.2 0.2

输出

2 2

说明

有多个长度至少为2的子数组的几何平均值为0.2,其中长度最短的为2,也有多个,长度为2且几何平均值为0.2的子数组最前面的那个为从第二个数开始的两个0.2组成的子数组

题目解析

本题需要找到一个长度至少为 L 的子数组,使得它的几何平均值最大。可以利用二分法来找到这个几何平均值,然后再根据这个几何平均值来判断是否存在符合要求的子数组。

具体来说,二分法的上下界分别是数组中的最大值和最小值,然后每次取中间值 mid_num,计算以 mid_num 为几何平均值的子数组是否存在,并且长度是否大于等于 L。如果存在,说明当前的 mid_num 可以作为几何平均值,需要将最小值更新为 mid_num,否则需要将最大值更新为 mid_num。

计算以 mid_num 为几何平均值的子数组是否存在,可以利用前缀和的方式来计算,同时可以利用一个临时变量 min_pre_result 来记录前缀和的最小值,以及它的位置 min_pre_result_pos,这样可以避免每次重新计算前缀和。

C++

#include <iostream>
http://www.jsqmd.com/news/412535/

相关文章:

  • 实现一个简单的文本摘要生成器。
  • pyTorch环境搭建及遇到的算力问题
  • 卷积神经网络(CNN)简介-卷积神经网络介绍
  • 【RCCL】RCCL工具
  • 大数据交易数据湖架构设计指南
  • 2026年2月25日
  • 什么是动态住宅 IP 代理?动态 IP 最常用在哪些业务
  • 搜索已死,问答永生:2026年6大特色GEO服务商实战图谱与避坑指南 - 品牌2025
  • LLM支持的AI Agent上下文感知推荐技术
  • langchain架构设计以及应用案例分享
  • AI获客新范式:2026年6大优质GEO服务商全景解析与实战指南 - 品牌2025
  • TypeScript学习
  • 工业AI的赛道有哪些主要玩家?全球竞争格局与未来趋势探讨
  • pycharm安装及环境配置
  • 整车制造计划排程排产系统的创新与实践
  • 工业超级智能体在整车制造如何实现生产优化与决策协同?
  • 告别盲目投放:2026年七大GEO服务商深度拆解与精准匹配 - 品牌2025
  • Rust学习笔记第2篇
  • 2026年负债人必看:如何合法高效解决信用卡债务问题? - 代码非世界
  • 网贷协商最佳解决方案,教你找到靠谱的债务协商服务商 - 代码非世界
  • 2026年贷款债务协商全攻略,2026年信用卡贷款债务协商,正确的解决方案到底是什么? - 代码非世界
  • 2026年信用卡/贷款逾期后,如何合法协商分期还款? - 代码非世界
  • 《白色相簿2》《歌を忘れた偶像》终章-雪菜线玩后感
  • docker 入门
  • docker 入门2
  • 深入解析 MobileNetV2:边缘AI场景中最常用的轻量化卷积神经网络
  • Perl 条件语句详解
  • docker 镜像备份
  • 创客匠人:2026知识付费“生死局”,AI智能体如何重构“交付”价值?
  • docker 使用GUI ROS2