通过率 72% · 提交 29 · 通过 21
魔法帝国的能量调度总署负责将魔力业务绑定到各地魔法容器中。每个容器都有一组独立的,而魔法业务会占用其中连续的一段端口完成咒语释放。 你需要实现一套魔法容器契约系统,支持初始化容器、绑定业务、删除业务、查询业务和释放容器等操作。 操作说明 容器与端口限制 * 最多存在 `64` 个容器,每个容器编号 `cid` 范围为 `[0, 1023]` * 每个容器拥有 `30` 个端口,编号为 `[1, 30]` * 每个业务编号 `bid` 范围为 `[1024, 65535]`,每个容器最多绑定若干业务 * 每个业务通过指定 占用连续若干端口,合法策略包括:`1`, `3`, `15`, `30` 添加策略说明 * 若 `level=30`,则 `startport` 只能为 `1` * 若 `level=15`,则 `startport` 只能为 `1` 或 `15` * 若 `level=3`,则 `startport` 只能为 `1, 4, 7, ..., 28` * 若 `level=1` 且 `startport=0`,系统会从 `1` 开始查找空闲端口绑定
这类题属于华为可信认证科目一方向中「系统设计 / 哈希表」方向的高频题型,通常考察对「系统设计 / 哈希表」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
Q,表示操作的总次数。
接下来的 Q 行依次表示每条命令及其参数:MagicContainerSystem
用于初始化系统。
n,表示容器数量n 个整数表示容器 ID 列表nulladd
添加一个魔法业务
cid、bid、startport、level(共四行)1 开始),若失败输出 -1remove
删除若干业务
query
查询某容器下的业务
输入一行:容器 ID
输出一行:所有业务 ID,按以下顺序排序
level 降序,再按 startport 升序,最后按 bid 升序-1free
释放某容器的所有业务
对每条命令按顺序输出结果:
MagicContainerSystem 输出一行:nulladd 输出:绑定业务的实际起始端口编号(从 1 起);失败输出 -1remove 输出:成功删除的业务数量query 输出:一行所有业务 ID;若无业务,输出 -1free 输出:被释放的业务数量示例 1
输入示例
12 MagicContainerSystem 3 0 1 2 add 0 5001 1 15 add 0 5002 4 3 add 0 5003 0 1 add 0 5004 0 1 add 1 6000 0 15 query 0 remove 3 5002 5003 9999 query 0 free 0 add 0 7000 0 15 query 0
输出示例
null 1 -1 16 17 1 5001 5003 5004 1 5001 5004 2 1 7000
MagicContainerSystem 0 1 2 → 初始化容器 0、1、2,输出 null
add 0 5001 1 15 → 容器 0 添加业务 5001,从端口 1 开始占用 15 个端口,成功,输出起始下标 1
add 0 5002 4 3 → 端口冲突(已被 5001 占用),添加失败,输出 -1
add 0 5003 0 1→ 自动分配空闲端口,找到第一个空闲端口 16,成功绑定,输出 16
add 0 5004 0 1→ 自动分配空闲端口,绑定到端口 17,输出 17
add 1 6000 0 15→ 向容器 1 添加业务 6000,占用端口 1-15,成功,输出 1
query 0→ 查询容器 0 的业务,按起始端口排序,输出:5001, 5003, 5004
remove 5002 5003 9999→ 删除业务 5003 成功,其余忽略,输出成功删除数 1
query 0→ 查询容器 0 的业务,输出:5001, 5004
free 0→ 清空容器 0 的所有业务,释放业务数 2,输出 2
add 0 7000 0 15 → 自动分配端口,容器 0 为空,从端口 1 开始绑定 7000,输出 1
query 0 → 查询容器 0,仅剩业务 7000,输出:7000
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有