华为OD机试真题B卷 Python 实现【内存资源分配】,附详细解题思路

news2024/11/15 17:29:25

在这里插入图片描述

目录

    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Python算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
    • 3、说明
    • 4、如果改一下呢?

一、题目描述

有一个简易内存池,内存按照大小粒度分类,每个粒度有若干个可用内存资源,用户会进行一系列内存申请,需要按需分配内存池中的资源,返回申请结果成功失败列表。

分配规则如下:

  1. 分配的内存要大于等于内存的申请量,存在满足需求的内存就必须分配,优先分配粒度小的,但内存不能拆分使用;
  2. 需要按申请顺序分配,先申请的先分配,有可用内存分配则申请结果为true;
  3. 没有可用则返回false;

注意:不考虑内存释放。

二、输入描述

输入两行字符串。

第一行为内存池资源列表,包含内存粒度数据信息、粒度数据间用逗号分隔,一个粒度信息内用冒号分隔,冒号前为内存粒度大小,冒号后为数量。

资源列表不大于1024,每个粒度数量不大于4096。

第二行为申请列表。

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

三、输出描述

输出内存池分配结果。

四、解题思路

  1. 定义一个内存列表,并初始化数据;
  2. 定义一个申请列表,并初始化数据;
  3. 分配的内存要大于等于内存的申请量;
  4. 存在满足需求的内存就必须分配;
  5. 输出内存池分配结果;

五、Python算法源码

# 内存池资源列表
memorys = input()
# 申请列表
applys = input()


def allocate_memory(memorys, applys):
    # 内存列表
    memoryList = []
    # 内存分配结果
    memoryAllocationList = []

    # 解析内存池资源列表
    memoryInfoList  = memorys.split(",")
    for info in memoryInfoList :
        # 内存粒度大小,内存数量
        memory_size, memory_count = info.split(":")
        for _ in range(int(memory_count)):
            memoryList.append(int(memory_size))

    # 申请列表
    applyList = []
    # 解析申请列表
    applyListList = applys.split(",")
    for apply_memory in applyListList:
        applyList.append(int(apply_memory))

    # 内存分配结果
    for apply_memory in applyList:
        flag = False
        for i in range(len(memoryList)):
            # 分配的内存要大于等于内存的申请量
            if memoryList[i] >= apply_memory:
                # 存在满足需求的内存就必须分配
                flag = True
                memoryList.pop(i)
                break
        memoryAllocationList.append(flag)

    return memoryAllocationList

# 输出内存池分配结果
print(allocate_memory(memorys, applys))

六、效果展示

1、输入

8:1,16:1,32:1,64:1
60,12,24,60

2、输出

true,true,true,false

3、说明

60对应64,即为true;
12对应16,即为true;
24对应32,即为true;
60无可对应的内存,即为false;

在这里插入图片描述

4、如果改一下呢?

8:1,16:1,32:1,64:2
60,12,24,60

我猜会输出true,true,true,true,你觉得呢?

快来试试看吧。



🏆下一篇:华为OD机试真题 Python 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(Python)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

django 使用channels 搭建websocket聊天程序

channels官方文档:Django Channels — Channels 4.0.0 documentation 效果如下: 主要实现功能 基于Django的认证的群聊 具体实现 当建立websocket的时候,建立之前是http消息,我们可以拿到http消息里面的cookie等信息进行认证&…

数字经济时代,高校该如何建设大数据实验实训室,培养高质量数智人才?

数智人才作为数字经济时代发展的重要支撑资源,人才质量、存量与储备量之争,成为综合国力和区位竞争的重要内容,而大数据与人工智能技术作为数字经济的主要驱动力,相关人才的培养尤其重要。教育部自2016年起,陆续批准设…

Maven中 排除依赖 exclusions

使用maven进行jar包依赖管理时&#xff0c;maven会自行管理jar包及其依赖链条&#xff0c;但往往会遇到依赖冲突问题&#xff0c;这时候就可以尝试使用exclusions来进行依赖管理 demo:排除tomcat 启用 jetty <dependency><groupId>org.springframework.boot</g…

map父子维护的ebom父子部件关系计算组套数量

map父子维护的ebom父子部件关系计算组套数量 使用ebom时候&#xff0c;把部件父子关系和安装数量维护在了map上面&#xff0c;要计算组套数量&#xff0c;需要递归从当前往上取出父级安装数量相乘&#xff0c;一直取到最顶层。 G的组套数量&#xff1a;GDB32212 E的组套数量&a…

如何提高应用的用户留存

用户的留存率是我们应用内最重要的指标之一&#xff0c;是指有多少人在一段时间后还在使用该应用&#xff0c;它定义了我们的受众规模&#xff0c;让我们知道应用是否有增长的能力。 提高应用保留率的策略&#xff1a;1&#xff0c;推送通知&#xff0c;在适当的时候发送推送通…

计算机网络速成

更好的阅读体验 \color{red}{\huge{更好的阅读体验}} 更好的阅读体验 因特网概述 网络、互联网和因特网 网络&#xff1a;将多个计算机或计算机网络通过通信线路连接起来&#xff0c;使得它们可以相互通信和交换信息的系统。由若干节点&#xff08;Node&#xff09;和连接这些…

LInux:生成崩溃程序的core文件

core文件是linux系统下一种记录软件异常的机制&#xff0c;在进程运行崩溃时&#xff0c;系统会将coredump信息写入core文件。 这样就方便我们定位软件问题。 1. 设置core文件大小 使用ulimit -c可以查看当前core文件的大小 默认情况下&#xff0c;core文件的大小为0&#xf…

chatgpt赋能python:Python开发的SEO应用

Python开发的SEO应用 搜索引擎优化&#xff08;SEO&#xff09;已经成为每个网站所有者需要考虑的重要因素之一。随着搜索引擎算法的不断变化和演进&#xff0c;我们需要确保我们的网站能在各种搜索引擎中进行良好的排名。Python作为一门强大的编程语言&#xff0c;已经被广泛…

Databend v1.2 版本发布!Data + AI

各位社区小伙伴们&#xff0c;Databend 于 2023 年 6 月 29 日迎来了 v1.2.0 版本的正式发布&#xff01;相较于 v1.1.0 版本&#xff0c;开发者们一共新增了 600 次 commit&#xff0c;涉及 3083 个文件变更&#xff0c;约 17 万 行代码修改。感谢各位社区伙伴的参与&#xff…

跨境电商如何快速提升产品排名和转化率,打造爆款产品

中小卖家在跨境电商平台上经营时&#xff0c;经常会遇到提升销售瓶颈的问题。今天陈哥将分享一个快速打造爆款的方法&#xff0c;除了SEO优化&#xff08;关键词分析、优化标题、图片、产品描述和定价&#xff09;等方面的策略。同时&#xff0c;测评也是一个有效的手段&#x…

规则引擎是什么,常见的应用领域,你知道吗?

规则引擎是什么 规则引擎&#xff0c;规则引擎是企业数字化转型升级过程中非常必要的软件工具&#xff0c;是一种能够自动执行一定条件下的预设逻辑的技术&#xff0c;可以帮助企业在收到数据或事件时自动触发相关业务规则&#xff0c;其主要优势如下&#xff1a; 易于维护与…

2023年华中杯数学建模C题空气质量预测与预警解题全过程文档及程序

2023年华中杯数学建模 C题 空气质量预测与预警 原题再现 空气污染对人类健康、生态环境、社会经济造成危害&#xff0c;其污染水平受诸多因素的影响&#xff0c;如 PM2.5、PM10、CO、气温、风速、降水量等&#xff0c;探究 PM2.5 等污染物浓度的因素&#xff0c;更精准的预测…

山西电力市场日前价格预测【2023-07-04】

日前价格预测 预测明日&#xff08;2023-07-04&#xff09;山西电力市场全天平均日前电价为136.03元/MWh。其中&#xff0c;最高日前电价为280.29元/MWh&#xff0c;预计出现在00:15。最低日前电价为0.00元/MWh&#xff0c;预计出现在09:15-18:15。 以上预测仅供学习参考&…

速成!|量子粒子群优化算法及其实现(Matlab)

作者在前面的两篇文章中介绍了标准粒子群及其变体&#xff0c;**由于PSO算法需要设定的参数(惯性因子w&#xff0c;学习因子 c1&#xff0c;c2)太多&#xff0c;不利于找到待优化模型的最优参数&#xff0c;而且粒子位置变化缺少随机性&#xff0c;容易陷入局部最优。**针对这些…

花了 44 块钱,实现 Java 发送短信功能

个人项目&#xff1a;社交支付项目&#xff08;小老板&#xff09; 作者&#xff1a;三哥&#xff08;https://j3cod3.cn&#xff09; 本篇为从 0 到 1 的一个&#xff0c;用 Java 对接腾讯短信发送功能的一篇流程文章。而标题中的 44 大洋则是用来购买短信套餐&#xff0c;当然…

怎么用21zui工具为图片添加水印

有些小伙伴工作内容是推荐公司产品&#xff0c;在平台中发布产品图片的时候&#xff0c;应该为图片添加专属水印&#xff08;文字水印或者logo水印&#xff09;&#xff0c;为什么要这么做呢&#xff1f;因为添加水印可以保护我们的图片不被盗用&#xff0c;同时也有助于推广我…

(24)目标检测算法之YOLOv6 (2)量化与部署详解

目标检测算法之YOLOv6 (2)量化与部署详解 详解量化训练方式 详解部署方法&#xff1a;onnx 、openvnio、 tensorrt YLOLOv6目前发布的模型&#xff1a;从模型大小方面来看&#xff0c;可分为微小型(Nano)&#xff0c;小(Small)&#xff0c;中(Medium)&#xff0c;大模型(Larg…

【单周期CPU】LoongArch | 32位寄存器DR | 32位的程序计数器PC | 通用寄存器堆Registers | 32位RAM存储器

前言&#xff1a;本章内容主要是演示在vivado下利用Verilog语言进行单周期简易CPU的设计。一步一步自己实现模型机的设计。本章先介绍单周期简易CPU中基本时序逻辑部件设计。 &#x1f4bb;环境&#xff1a;一台内存4GB以上&#xff0c;装有64位Windows操作系统和Vivado 2017.…

黑马微信小程序登录弹窗问题与解决的说明

1.问题 1.1开发者工具报错 [getFuzzyLocation] is not authorized如何解决&#xff1f; 1.2弹窗问题 2.解决方法 2.1开发工具报错问题 首先登录微信公众平台&#xff0c;找到开发管理。如下图 然后开通wx.getFuzzyLocation 申请模版&#xff0c;通过速度很多&#xff0c;…

24小时不定时价格监测如何做到

在做电商平台的数据监测时&#xff0c;品牌需要对线上监测的数据进行不定时监测&#xff0c;这是因为品牌做价格监测的目的是为了管控渠道&#xff0c;如果对店铺只能在特定的时间进行监测&#xff0c;那对于其他时间段的低价行为将不被发现&#xff0c;这也会使品牌渠道管控的…