华为OD机试真题-机房布局/栈解法【2023.Q1】

2023-11-02

小明正在规划一个大型数据中心机房,需要满足的条件是:确保在每个机柜边上至少要有一个电箱。
已知:机房排成1排,我们用M表示机柜,I表示间隔。
请你返回这整排机房,至少需要多少个电箱。如果无解请返回-1。
输入描述
第一行输入一个字符串,由 M 和 I 组成,表示机房的组成样式
输出描述
输出一个整数,表示整排机房至少需要多少个电箱。
如果无解请返回-1。
示例1:
输入: MIIM
输出: 2

解题思路

除了模拟之外,这道题还可以用栈求解。
遍历输入的字符串,如果遇到字符 ‘M’,表示遇到一个机柜,首先判断该机柜是否满足前后都有机柜的情况,如果是,则直接输出 -1 并结束程序。
1.如果遇到机柜(‘M’),我们需要确保至少在其左侧或右侧放置一个电箱。我们计算左侧和右侧的位置(pos_left 和 pos_right)。
2.检查栈顶元素是否等于 pos_left。如果等于 pos_left,说明上一个机柜已经放置了电箱,可以在当前机柜的左侧重复使用这个电箱。
3.如果栈顶元素不等于 pos_left 或者栈为空,说明需要在当前机柜的右侧放置一个新的电箱。这种情况下,我们将 pos_right 压入栈,表示新放置的电箱位置。
如果遇到间隔(‘I’),直接跳过。
遍历结束后,栈中的元素个数就是所需的电箱数量。<

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为OD机试真题-机房布局/栈解法【2023.Q1】 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 如何循环遍历所有组合,例如48 选择 5 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在java中从大小为n的集合中迭代生成k个元素子集 https stackoverflow com questions 4504974 how to iteratively generate k
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • 来自 dll 的 Java 调用函数

    我有这个 python 脚本导入zkemkeeperdll 并连接到考勤设备 ZKTeco 这是我正在使用的脚本 from win32com client import Dispatch zk Dispatch zkemkeeper ZKE
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • 无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]-MySQL

    我是 Hibernate 的新手 我目前正在使用 Spring boot 框架并尝试通过 hibernate 创建数据库表 我知道以前也问过同样的问题 但我似乎无法根据我的环境找出如何修复错误 休眠配置文件
  • 将 MOXy 设置为 JAXB 提供程序,而在同一包中没有属性文件

    我正在尝试使用 MOXy 作为我的 JAXB 提供程序 以便将内容编组 解组到 XML JSON 中 我创建了 jaxb properties 文件 内容如下 javax xml bind context factory org eclip
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 关键字“table”附近的语法不正确,无法提取结果集

    我使用 SQL Server 创建了一个项目 其中包含以下文件 UserDAO java public class UserDAO private static SessionFactory sessionFactory static se
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db

随机推荐

  • 无序链表的归并排序 - Java代码纯享版

    public class ListNodeMergeSort public static class ListNode int val ListNode next public ListNode int val this val val p
  • 嵌入式linux内存分析

    在linux的桌面发行版中 一般都会有一个swap分区 然而在用FLASH做存储介质的嵌入式设备中 是没有交换分区的 这主要的有如下原因 1 一旦使用了交换分区 系统的性能将下降得很快 不可接受 2 FLASH的写次数有限的 大概在几十万次
  • win10 安装 mysql server

    welcome to my blog 如何启动mysql server 只需四步 安装 配置mysql server 第一步 去官网下载mysql server 下载地址 有两个下载链接 第一个安装包比较小 第二个安装包比较大 因为包含调试
  • CCP集成和基于CANoe的简易标定实现

    CCP简介 CCP就是基于CAN总线的标定协议 在没有这个协议之前 每个供应商有自己的标定工具和协议 五花八门 很难协调 终于有一天有个哥们跳出来制定了一个规范 说大家伙都按这个方法来搞标定测试吧 这个哥们就是ASAP CCP协议属于其中的
  • 最大类间方差(大津法)

    1 概述 最大类间方差法是由日本学者大津 Nobuyuki Otsu 于1979年提出的 是一种自适应的阈值确定的方法 又叫大津法 简称OTSU 它是按图像的灰度特性 将图像分成背景和目标2部分 背景和目标之间的类间方差越大 说明构成图像的
  • 好玩的脚本代码大全_Scriptable脚本——网易云热评

    Scriptable脚本 网易云热评 今天我为大家带来新的作品 iOS14桌面组件神器 Scriptable 原创脚本 精美作品分享 喜欢的话就点关注吧 更多脚本正在路上 效果图 如何使用 iPhone 上下载 Scriptable App
  • Tree with Maximum Cost---CF1092F 树上DP

    F Tree with Maximum Cost time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstand
  • LoRa学习总结(三)

    之前总结是LoRa的基本知识 接下来是都是代码的结构或者细节方面的总结 1 协议介绍 协议将分成三层 射频层 MRFI 网络层 NWK 应用层 APP 2 射频层 这里没有通常所说的物理层和数据链路层 因为这是有Radio芯片将传输过来的数
  • 第3期大模型前沿讲习班报名中,顶尖专家面授,多角度系统培训

    人工智能研究与应用范式正经历一场剧变 越来越多的顶级团队和杰出人才纷纷加入这一变革浪潮 作为AI大模型科研先锋 智源研究院携手一批卓越的学者与工程师 致力于将尖端技术与经验传授给有潜力的学习者 通过高效的学习方式 让更多人能迅速融入这一重要
  • 基于JAVA新型农村消费贷电商平台计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA新型农村消费贷电商平台计算机毕业设计源码 系统 数据库 lw文档 部署 基于JAVA新型农村消费贷电商平台计算机毕业设计源码 系统 数据库 lw文档 部署 本源码技术栈 项目架构 B S架构 开发语言 Java语言 开发软件 i
  • C++ 小记 :使用 string 定义变量要先初始化

    使用 string 时先给其初始化 否则可能出现未知错误 初始化时 如下是错误示例 std string str NULL 如下是正确示例 std string str
  • doxygen简明使用教程

    1 工作环境 ubuntu18 04 2 安装二进制 sudo apt get install doxygen doxygen doc doxygen gui graphviz 一次性二进制全安装上 发现竟然已经安装过了 3 调用该命令雕出
  • AIGC图像生成的原理综述与落地畅想

    AIGC 这个当前的现象级词语 本文尝试从文生图的发展 对其当前主流的 Stable Diffusion 做一个综述 以下为实验按要求生成的不同场景 风格控制下的生成作品 概述 技术演进一 昙花初现 GAN 家族 GAN 系列算法开启了图片
  • Android中Application类用法

    Application类 Application和Activity Service一样是Android框架的一个系统组件 当Android程序启动时系统会创建一个 Application对象 用来存储系统的一些信息 Android系统自动会
  • Unity查找物体方法的详细对比

    Unity查找物体方法的详细对比 我们开发中常用的查找物体的方法有 GameObject Find transform Find FindGameObjectWithTag FindGameObjectsWithTag FindObject
  • Ubuntu系统里使用gcc和Makefile编译c程序

    1 在windows环境下通过虚拟机软件 比如Vmware VirtualBox 安装Ubuntu 16 04 18 04 Desktop 并设置网络参数保证系统能上网 熟练掌握Ubuntu常用命令 并学习使用vi vim 或nano 或g
  • Visual Studio 2017 集成Crystal Report为ASP.NET MVC呈现报表

    最近项目需要实现报表功能 平衡各方面的因素 还是使用Crystal Report 水晶报表 下载较新版本 http downloads businessobjects com akdlm cr4vs2010 CRforVS 13 0 21
  • GetBytes的长度区别

    C 的GetBytes的长度区别 string s 欧 耶 string ss abc defg Encoding Default 是指当前系统设置的 默认字符集编码方式 Encoding ASCII 将 Unicode 字符编码为单个 7
  • Android动态化UI框架一、Virtualview-Android

    Android动态化UI框架一 Virtualview Android GitHub alibaba Virtualview Android 简介 A light way to build UI in custom XML Virtualv
  • 华为OD机试真题-机房布局/栈解法【2023.Q1】

    小明正在规划一个大型数据中心机房 需要满足的条件是 确保在每个机柜边上至少要有一个电箱 已知 机房排成1排 我们用M表示机柜 I表示间隔 请你返回这整排机房 至少需要多少个电箱 如果无解请返回 1 输入描述 第一行输入一个字符串 由 M 和