华为od机试真题:内存冷热标记(Python)

news2024/9/20 14:31:07

华为od机试

2024华为OD机试(C卷+D卷)最新题库【超值优惠】Java/Python/C++合集

题目描述

现代计算机系统通常存在多级的存储设备,针对海量的 wordload 的优化的一种思路是将热点内存页优化先放到快速存储层级,这就需要对内存页进行冷热标记。

一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,要实现基于频次的冷热标记。内存页使用页框号作为标识。

输入描述

第一行输入为 N, 表示访存序列的记录条数, 0 < N ≤ 10000。

第二行为访问内存序列,空格间隔的 N 个内存页框号,页面号范围 0 ~ 65535,同一个页框号可能重复出现,出现的次数即为对应框号的频次。

第三行为热内存的频次阈值 T ,正整数范围 1 ≤ T ≤ 10000。

输出描述

第一行为输出标记为热内存的内存页个数,如果没有被标记为热内存的,则输出 0。

如果第一行大于 0,则接下来按照访问频次降序输出内存页框号,一行一个,频次一样的页框号,页框号小的排前面。

示例1

输入:
10
1 2 1 2 1 2 1 2 1 2
5

输出:
2
1
2

说明:
内存页 1 和内存页 2 均被访问了5 次,达到了阈值5 ,因此热内存页有2个。内存页1 和内存页 2 的访问频次相等,页框号小的排前面。

示例2

输入:
5
1 2 3 4 5
3

输出:
0

说明:
从访问跟踪里面访问频次没有超过 3 的,因此热内存个数为 0。

题解

题目类型

这道题属于哈希表及排序类型的算法题,涉及到数据统计和排序处理。

解题思路
  1. 数据读取与预处理
    • 首先读取访存记录的总条数 N
    • 读取 N 个内存页框号并统计每个页框号的访问次数。
    • 读取热内存的频次阈值 T
  2. 统计频次
    • 使用 collections.Counter 来统计每个内存页框号的访问频次。
  3. 过滤与排序
    • 过滤出访问频次大于等于 T 的内存页框号。
    • 根据访问频次从高到低排序,如果频次相同,则按页框号从小到大排序。
  4. 输出结果
    • 输出标记为热内存的内存页个数。
    • 按照排序结果输出每个热内存页框号。
代码大致描述

代码使用 Counter 统计访问频次,并过滤出频次大于等于阈值的内存页框号。然后根据访问频次降序、页框号升序排序,并输出结果。

Python

from collections import Counter

# 读取访存序列的记录条数
n = int(input())

# 读取访存的内存页框号序列
a = list(map(int, input().split()))

# 读取热内存的频次阈值
t = int(input())

# 使用Counter统计每个内存页框号的访问频次
freq = Counter(a)

# 过滤出访问频次大于等于阈值t的内存页框号,并存入列表
lst = [(page, cnt) for page, cnt in freq.items() if cnt >= t]

# 对列表进行排序,按访问频次从高到低排序,频次相同按页框号从小到大排序
lst.sort(key=lambda x: (-x[1], x[0]))

# 输出热内存页的数量
print(len(lst))

# 逐行输出热内存页框号
for page, cnt in lst:
    print(page)

整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

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

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

相关文章

吴恩达机器学习WEEK2

COURSE1 WEEK2 多维特征 在线性回归中&#xff0c;往往特征不止一个&#xff0c;而是具有多维特征 例如&#xff0c;在预测房价的例子中&#xff0c;我们知道更多的信息&#xff1a; x 1 x_1 x1​&#xff1a;房屋的面积 x 2 x_2 x2​&#xff1a;卧室的数目 x 3 x_3 x3​&a…

天气预报仿写总结

目录 前言 首页 搜索页 详情页 浏览页 前言 这周学习了iOS中简单的网络请求&#xff0c;并完成了天气预报的仿写&#xff0c;这篇博客来做一下总结。天气预报主要要实现四个界面&#xff0c;接下来分四个界面分别讲解一下。 首页 首页的布局就是上方两个很简单的控件添加…

【人工智能基础三】卷积神经网络基础(CNN)

文章目录 1. 卷积神经网络结构2. 卷积神经网络计算2.1. 卷积层计算2.2. 池化层计算2.3. 全连接层计算 3. 典型卷积神经网络3.1. AlexNet3.2. VGGnet 卷积神经网络(Convolutional Neural Network&#xff0c;CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Ne…

1、 window平台opencv下载编译, 基于cmake和QT工具链

1. 环境准备&#xff0c;源码下载 1.1 前置环境 qt 下载安装cmake 安装&#xff0c;可参考&#xff1a; https://blog.csdn.net/qq_51355375/article/details/139186681 1.2 opencv 源码下载 官网地址&#xff1a; https://opencv.org/releases/ 下载源码&#xff1a; 2 …

(2024,∞-Brush,无限维扩散,希尔伯特空间,超分辨率,跨注意力神经算子,线性注意)具有无限维度扩散模型的可控大图像合成

∞-Brush: Controllable Large Image Synthesis with Diffusion Models in Infinite Dimensions 目录 0. 摘要 1. 简介 2. 相关工作 4. 提出的方法 4.1 函数空间中的条件扩散模型 4.2 带有跨注意力神经算子的条件去噪器 5. 实验 6. 限制 7. 结论 0. 摘要 将复杂、特定…

【C++】C++11(可变参数模板、lambda表达式、包装器)

文章目录 1. 可变参数模板1.1 介绍1.2 emplace系列接口实现 2. lambda表达式2.1 语法介绍2.2 原理 3. 包装器4. bind 1. 可变参数模板 1.1 介绍 可变参数我们在C语言阶段已经了解过了&#xff0c;C语言中叫做可变参数列表&#xff0c;其中使用 ... 代表可变参数。 C语言中的可…

百款精选的HTML5小游戏源码,你可以下载并直接运行在你的小程序或者自己的网站上

今天我带来了一份特别的礼物——百款精选的HTML5小游戏源码&#xff0c;你可以下载并直接运行在你的小程序或者自己的网站上&#xff0c;只需双击index.html即可开始。无论你是在寻找创意引流&#xff0c;还是想为你的网站增添互动性&#xff0c;这些小游戏都能帮你实现&#x…

Arch Linux - 2-安装中文输入法

文章目录 2 安装中文输入法2.0 准备2.0.1 前置条件2.0.2 建议 2.1 方案一&#xff1a;RimeIBus2.1.1 安装&配置2.1.2 添加输入法 2.2 方案二&#xff1a;IBusLibpinyin 2 安装中文输入法 2.0 准备 2.0.1 前置条件 预装gnome # 安装 pacman -S gnome# 设置开机自启动 sy…

开放式耳机有什么用?市面上热门的四款蓝牙耳机推荐

开放式耳机的用处相当广泛。 其一&#xff0c;它在耳朵健康方面表现出色。长期使用入耳式或者封闭式耳机&#xff0c;容易致使耳道处于潮湿状态、细菌大量滋生&#xff0c;甚至诱发耳部疾病。而开放式耳机不会阻塞耳道&#xff0c;能够使耳朵维持通风且干燥的状态&#xff0c;…

分享5款漂亮、简洁的登录页面模板分享,拿来即用(二)

文章目录 前言一、Bootstrap Material 风格的登录模板二、简洁清晰的jQuery登录模板三、防知乎的登录模板四、背景动态变化的登录模板五、背景动态变化的登录模板2六、深色背景登录模板 前言 在做管理系统的时候&#xff0c;有时为了做一个漂亮简洁的登录页面&#xff0c;对应…

【Log4j2】log4j-users-guide 官方文档阅读笔记

文章目录 前言1. Log4j2 架构直观了解2. Logger 的树状结构及 additivity3. Logger 的 Level 属性4. Filter 的结构5. Filter 作用的规则 前言 原文 Apache Log4j 官方文档 pdf需求 将指定包目录的日志打到指定文件中将 ERROR 日志单独打到指定文件中 目标 理解 log4j2 的架构…

java学习--集合

集合简介 关系示例图 Collection接口实现类的特点 Collection接口常用方法 Collection接口遍历元素方式&#xff1a; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator;/* author:我与java相爱相杀---c语言梦开始的地方 今天又是努力学习的…

【vulnhub】The Ether: Evil Science靶机

靶机安装 下载地址&#xff1a;https://www.vulnhub.com/entry/the-ether-evilscience-v101,212/ 运行环境&#xff1a;Vmware 信息收集 进行IP发现 nmap 192.168.93.0/24 进行端口扫描,开放了80和22端口 nmap -A 192.168.93.155 -p- 进行目录扫描 dirsearch -u http://…

MATLAB(15)分类模型

一、前言 在MATLAB中&#xff0c;实现不同类型的聚类&#xff08;如K-means聚类、层次聚类、模糊聚类&#xff09;和分类&#xff08;如神经网络分类&#xff09;需要用到不同的函数和工具箱。下面我将为每种方法提供一个基本的示例代码。 二、实现 1. K-means聚类 % 假设X是…

现代前端架构介绍(第一部分):App是如何由不同的构建块构成的

远离JavaScript疲劳和框架大战&#xff0c;了解真正重要的东西 几周前&#xff0c;我的同事们对我们的前端架构、代码结构和面临的挑战很感兴趣。在做了几次关于如何构建可扩展且健壮的前端的演讲后&#xff0c;我觉得把它们都总结一下并与社区分享我们的策略是一个不错的主意。…

主机安装要点

1.选择主板时&#xff0c;一定要先看能不能与 CPU 匹配得上。 2.后缀带 K 的 CPU&#xff0c;因为支持超频&#xff0c;也最好搭配 支持超频 系列主板。 3.主板尺寸大小E-ATX 加大板、ATX 大板、M-ATX 小板、ITX 迷你板&#xff0c;符合机箱大小。 4.部分主板不带A-RGB,有灯…

OpenHarmony应用开发和Android应用开发区别

OpenHarmony 和 Android 是两个不同的操作系统平台&#xff0c;各自有其独特的开发环境和架构。以下是 OpenHarmony 应用开发与 Android 应用开发之间的主要区别&#xff1a; 1. 架构设计 OpenHarmony 微内核架构&#xff1a;OpenHarmony 采用微内核设计&#xff0c;核心功…

中科院2区SCI,稳定检索39年!不收版面费,审稿友好,最快6周录用,速投!

关注GZH【欧亚科睿学术】&#xff0c;第一时间了解期刊最新动态&#xff01; 中科院2区SCI&#xff0c;最快6周录用&#xff01; MACHINE LEARNING 是一本国际性期刊&#xff0c;由知名出版社SPRINGER出版&#xff0c;创刊于1986年&#xff0c;一直致力于发布报道高质量的机器…

2、 qt平台opencv引入,和工程搭建

1. 准备工作 opencv 编译&#xff0c; 参考&#xff1a; https://blog.csdn.net/qq_51355375/article/details/140857966vscode qt cmake工程创建及环境搭建&#xff1a; https://blog.csdn.net/qq_51355375/article/details/140752130 2. 引入opencv 头文件和链接库 2.1 配…

大数据信用报告查询注意事项

在当今这个数据驱动的时代&#xff0c;大数据信用报告已成为评估个人信用状况的重要参考。无论是申请贷款、租房还是求职&#xff0c;一份良好的信用报告都能为您加分不少。然而&#xff0c;在查询大数据信用报告时&#xff0c;有几点注意事项不容忽视&#xff0c;以确保您的信…