华为OD机试真题-水库蓄水 【2023.Q1】

题目内容

山脉间建一个天热蓄水库,如何选取水库边界,使蓄水量最大?
要求:

    山脉用正整数数组s表示,每个元素代表山脉的高度。
    选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间
    蓄水量的高度为两边界的最小值。
    如果出现多个满足条件的边界,应选取距离最近的一组边界。

给定一个长度为 n 的整数数组 height 。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

输入:

1 8 6 2 5 4 8 3 7

输出:

1 6:15

说明:蓄水量的最大值为 15

蓄水量最大时的边界下标为1 和 6

解题思路

设两指针 i,j,指向的水槽板高度分别为h[j],h[j],此状态下水槽面积为S(i,j)。由于可容纳的水的高度由h[j],h[j]中最短的决定,因此可以得到如下公式:
在这里插入图片描述

2023华为OD机试备考攻略 以及题库目录分值说明 考点说明 OD,全称(Outsourcing Dispacth)模式,目前华为和德科联合招聘的简称。华为社招基本都是OD招聘,17级以下都是OD模式(13-17)。 阅读详情

相关推荐

华为OD机试真题 C 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

华为OD机试 - 天然蓄水库(C++ Java JavaScript Python )

设两指针 i , j,指向的水槽板高度分别为 h[i] , h[j] ,此状态下水槽面积为 S(i, j)。例如,当山脉为s=[3,1,2]时,则选取s[0]和s[2]作为水库边界,则蓄水量为1,此时输出:0 2:1。若向内 移动长板 ,水槽的短板 min(h[i], h[j])不变或变小,因此下个水槽的面积 一定变小。若向内 移动短板 ,水槽的短板 min(h[i], h[j])可能变大,因此下个水槽的面积 可能增大。当山脉s=[3,2,1]时,不存在合理的边界,此时输出:0。表示s=[1,2,3]

算法大师! 3013

华为OD机试 - 天然蓄水库(C++题解)

本题使用了双指针法有效地计算了最大蓄水量,并找到了对应的边界。通过合理的遍历策略,避免了暴力搜索的高时间复杂度,同时确保了计算的正确性和效率。

m0_57781768的博客 382

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

经过分析,选取 s[1]和 s[8]时,水库蓄水量为 15;同样选取 s[1]和 s[6]时,水库蓄水量也为 15。例如,当山脉为 s=[3,1,2]时,则选取 s[0]和 s[2]作为水库边界,则蓄水量为 1,此时输出:0 2:1。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。如果无法蓄水,则返回 0,此时不返回边界。经过分析,选取 s[1]和 s[6]时,水库蓄水量为 19(3+7+4+5)当山脉 s=[3,2,1]时,不存在合理的边界,此时输出:0。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 3966

【100%通过率】华为OD机试真题 JS 实现【水库蓄水问题】【2023 Q1 | 100分】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 8170

华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典

华为OD机试题 华为OD面试 华为OD笔试 华为OD算法 华为OD编程题 华为OD岗位要求 华为OD职位评估 华为OD考试经验分享 华为OD在线测试 华为OD评估标准 华为OD评测系统 华为OD筛选机制 华为OD编程语言要求 华为OD数据结构与算法 华为OD程序设计 华为OD程序优化 华为OD编程能力考核 华为OD编程技巧与经验

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

2026华为OD机试(Python)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Python实现。

MISAYAONE的博客 28万+

2026华为OD机试(C语言)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C语言实现。

MISAYAONE的博客 11万+

2026华为OD机试(JavaScript)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,JavaScript实现。

MISAYAONE的博客 8万+

【新2023Q2押题JAVA】华为OD机试 - 天然蓄水库 or 天然蓄水池

经过分析,选取 s[1]和 s[8]时,水库蓄水量为 15;同样选取 s[1]和 s[6]时,水库蓄水量也为 15。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。经过分析,选取 s[1]和 s[6]时,水库蓄水量为 19(3+7+4+5)当存在合理的水库边界时,输出左边界、空格、右边界、英文冒号、蓄水量;如果出现多个满足条件的边界,应选取距离最近的一组边界。作为水库边界,则蓄水量为 1,此时输出:0 2:1。时,不存在合理的边界,此时输出:0。不存在合理的水库边界。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

华为OD机试-2023真题-考点分类

从2022年11月以后,OD机试换了新题库,新题库考察的算法比较偏,题目难度加大。了解到部分同学的一些需求,博主根据考点对题目进行了分类,如果时间紧迫,可以针对特 定题型优先选择一两道进行练习。

goldarmour的博客 7567

华为OD机试用JS实现 -【天然蓄水库 or 天然蓄水池】(2023-Q2 押题)

经过分析,选取 s[1]和 s[8]时,水库蓄水量为 15;同样选取 s[1]和 s[6]时,水库蓄水量也为 15。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。经过分析,选取 s[1]和 s[6]时,水库蓄水量为 19(3+7+4+5)当存在合理的水库边界时,输出左边界、空格、右边界、英文冒号、蓄水量;如果出现多个满足条件的边界,应选取距离最近的一组边界。作为水库边界,则蓄水量为 1,此时输出:0 2:1。时,不存在合理的边界,此时输出:0。不存在合理的水库边界。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

【100%通过率 】【华为OD机试c++/python】天然蓄水库【 2023 Q1考试题 A卷 |100分】

公元2919年,人类终于发现了一颗宜居星球——X星。现想在X星一片连绵起伏的山脉间建一个天然蓄水库,如何选取水库边界,使蓄水量最大? 要求: 山脉用正整数数组s表示,每个元素代表山脉的高度。 选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。 蓄水量的高度为两边界的最小值。 如果出现多个满足条件的边界,应选取距离最近的一组边界。 输出边界下标(从0开始)和最大蓄水量;如果无法蓄水,则返回0,此时不返回边界。

goldarmour的博客 5472

基于粒子群算法的PID控制器优化设计

粒子群算法、PID、寻优

qq_46107700的博客 2万+

Vivado SDK中LWIP库版本冲突与RTL8211FDI兼容性实战解析

本文深入解析Vivado 2019.1 SDK中LWIP 1.0库与RTL8211FDI千兆PHY芯片的版本冲突问题,并提供实战解决方案。通过手动移植高版本LWIP库、整合第三方驱动及优化BSP配置,有效解决了以太网通信兼容性问题,确保千兆性能稳定运行。

ios99的博客 270

Deepseek+Word插件:一键搞定论文翻译与润色的学术写作新革命

本文介绍了Deepseek Word插件如何革新学术写作流程,实现论文翻译与润色的一键操作。该插件深度集成于Word环境,能智能完成中英互译、语法修正、术语统一及逻辑优化,显著提升写作效率与文本质量,是研究者的高效AI助手。

weixin_29252171的博客 511

机器学习算法 —— LightGBM

本次我们选择英雄联盟数据集进行LightGBM的场景体验。英雄联盟是2009年美国拳头游戏开发的MOBA竞技网游,在每局比赛中蓝队与红队在同一个地图进行作战,游戏的目标是破坏敌方队伍的防御塔,进而摧毁敌方的水晶枢纽,拿下比赛的胜利。现在共有9881场英雄联盟韩服钻石段位以上的排位比赛数据,数据提供了在十分钟时的游戏状态,包括击杀数、死亡数、金币数量、经验值、等级……参考项目:机器学习系列入门系列[七]:基于英雄联盟数据集的LightGBM的分类预测。

ZShiJ的博客 708

【软考】高项论文写作常见模板

本文主要介绍了YYYY年MM月DD日,我所在公司承接了XXXX项目的建设过程,包括了XXX,XXX,XXX内容,涉及到XXX,XXX,XXX技术。本人在项目中承载着项目经理的角色,主要负责了XXX,XXX,XXX方面事宜。此项目时间紧,任务重,实施过程中,我们特别注重了1、XXX 2、XXX 3、XXX几个方面,经过团队的一致努力,本项目按时交付,运行至今,客户反馈良好。但是在实施过程中,也曝露除了一些问题,包括了XXX,XXX等,通过应急处理和协调,这些问题都得到了妥善解决,没有影响到项目进度。

奶爸的编程之路,也就一周冷个三天 1685

Java 实现 MP3 音频合并工具类:摆脱 FFmpeg,高效低 CPU 的纯本地方案【需求已解决】

本方案充分发挥了 Java 音频 SPI 的潜力,实现了轻量、跨平台、低 CPU 消耗的 MP3 音频合并工具类。 对于希望在服务器或桌面应用中集成音频处理功能的开发者而言,这无疑是一个可行且优雅的解决方案。

一键难忘的博客 542

从零开始学习CANoe(六)—— CAPL 测试节点

创建CAPL Test Module的两种方式

蚂蚁小兵 1万+

基于YOLOv10的机器人抓取引导系统:从物体检测到精准抓取

python# 数据标注工具简化版import os"""启动标注工具""""""标注单张图像"""print(f"标注图像: {os.path.basename(img_path)}")print("请在图像上绘制抓取矩形框...")# 这里应该实现交互式标注界面# 简化版本直接返回示例标注# 示例标注数据"""保存标注结果"""# 保存为YOLO格式# 转换为YOLO格式。

YOLO 377

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 华为OD机试真题-执行任务总时长 【2023.Q1】
下一篇: 华为OD机试真题-组装新的数组 【2023.Q1】
AlgorithmHero
博客等级 码龄4年 606粉丝 1067原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值