华为OD机试题:内存资源分配

本文介绍了一道关于内存资源分配的编程题,详细阐述了分配规则:内存需满足申请量,优先分配粒度小的,且不拆分。根据申请顺序分配,若有可用内存则返回成功,否则失败。提供了一个例子,展示了如何处理内存申请序列。
摘要由CSDN通过智能技术生成

题目描述:

有一个简易内存池,内存按照大小粒度分类,每个粒度有若干个可用内存资源,用户会进行一系列内存申请,需要按需分配内存池中的资源,返回申请结果成功失败列表。
分配规则如下:
分配的内存要大于等于内存申请量,存在满足需求的内存就必须分配,优先分配粒度小的,但内存不能拆分使用。
需要按申请顺序分配,先申请的先分配。
有可用内存分配则申请结果为true,没有可用内存分配则返回false。
注:不考虑内存释放。


输入描述:

第一行为内存池资源列表,包含内存粒度数据信息,粒度数据间用逗号分割,一个粒度信息内部用冒号分割,冒号前为内存粒度大小,冒号后为数量。资源列表不大于1024,每个粒度的数量不大于4096。

第二行为申请列表,申请的内存大小间用逗号分隔。申请列表不大于100000。

如:

   64:2,128:1,32:4,1:128
   50,36,64,128,127



输出描述:

输出为内存池分配结果。

如:true,true,true,false,false




示例

输入:

  64:2,128:1,32:4,1:128
  50,36,64,128,127

输出:true,true,true,false,false
说明:

内存池资源包含:64K共2个、128K共1个、32K共4个、1K共128个的内存资源;

针对50,36,64,128,127的内存申请序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值