通过率 29% · 提交 108 · 通过 31
有一个局部互联区域内的 n 台设备,每台设备都有一定数量的空闲资源,这些资源可以池化共享。用户会发起两种操作: 1. 申请资源:输入 1 x,表示本次申请需要 x 个资源。系统要返回当前资源池中能满足此申请且剩余资源最少的设备 ID;如果有多台设备满足条件,返回设备 ID 最小的;如果没有任何设备能满足,返回 0 并不做任何分配。 2. 释放资源:输入 2 y,表示将第 y 次申请(不一定是成功分配的那一次)释放回原设备。释放时,资源立即归还,且空闲资源自动连续,无需考虑空洞。
这类题属于华为 OD 机考真题方向中「100分 / 系统设计」方向的高频题型,通常考察对「100分 / 系统设计」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
第一行,输入 n 和 m,分别表示设备数量与操作次数,满足 1 ≤ n ≤ 1000、1 ≤ m ≤ 10^5。 第二行,输入 n 台设备的初始空闲资源数 d1…dn,满足 1 ≤ di ≤ 1000。 接下来 m 行,每行输入一次要执行的操作(1 x 表示申请,2 y 表示释放)。
一行整数,按操作顺序输出每次「申请」操作的返回值,以空格分隔;「释放」操作不产生输出。
示例 1
输入示例
2 2 100 500 1 40 1 450
输出示例
1 2
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有