华为OD机试 - 内存冷热标记(Java 2024 C卷 100分)

在这里插入图片描述

华为OD机试 2024C卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

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

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

二、输入描述

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

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

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

三、输出描述

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

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

四、解题思路

  1. 读取输入数据,包括访存序列的记录条数N、访问内存序列和热内存的频次阈值T。
  2. 统计每个内存页框号的访问频次。
  3. 找出访问频次大于等于阈值T的内存页框号,并将它们标记为热内存。
  4. 按照访问频次降序输出被标记为热内存的内存页框号。

五、Java算法源码

public class Test03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int N = sc.nextInt(); // 读取访存序列的记录条数int[] memoryPages = new int[N]; // 存储访问内存序列for (int i = 0; i < N; i++) {memoryPages[i] = sc.nextInt(); // 读取访问内存序列}int T = sc.nextInt(); // 读取热内存的频次阈值// 统计每个内存页框号的访问频次Map<Integer, Integer> frequencyMap = new HashMap<>();for (int page : memoryPages) {frequencyMap.put(page, frequencyMap.getOrDefault(page, 0) + 1);}// 找出访问频次大于等于阈值T的内存页框号,并将它们标记为热内存List<Integer> hotMemoryPages = new ArrayList<>();for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {if (entry.getValue() >= T) {hotMemoryPages.add(entry.getKey());}}// 按照访问频次降序输出被标记为热内存的内存页框号Collections.sort(hotMemoryPages, (a, b) -> {int freqA = frequencyMap.get(a);int freqB = frequencyMap.get(b);if (freqA != freqB) {return freqB - freqA;} else {return a - b;}});System.out.println(hotMemoryPages.size()); // 输出标记为热内存的内存页个数for (int page : hotMemoryPages) {System.out.println(page); // 输出被标记为热内存的内存页框号}}
}

六、效果展示

1、输入

10
1 2 1 2 1 2 1 2 1 2
5

2、输出

2
1
2

3、说明

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

在这里插入图片描述


🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2024 C卷 200分)

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经久耐用特氟龙材质塑料烧杯PFA坩埚耐受强酸强碱耐高温

PFA烧杯在实验过程中可作为储酸容器或涉及强酸强碱类实验的反应容器&#xff0c;用于盛放样品、试剂&#xff0c;可搭配电热板加热、蒸煮、赶酸用。 PFA烧杯规格参考&#xff1a;10ml、30ml、50ml、100ml、250ml、500ml、1000ml、2000ml。 外壁均有凸起刻度&#xff0c;直筒设…

《由浅入深学习SAP财务》:第2章 总账模块 - 2.6 定期处理 - 2.6.6 年初操作:科目余额结转

2.6.6 年初操作&#xff1a;科目余额结转 在使用事务代码 FAGLB03 查询科目余额时&#xff0c;可以看到按期间的发生额清单。其中&#xff0c;第一行称为“余额结转”&#xff0c;该行的累计余额代表上年度遗留下来的余额&#xff0c;也就是年初余额。对于资产负债表科目而言&a…

高清4路HDMI编码器JR-3214HD

产品简介&#xff1a; JR-3214HD四路高清HDMI编码器是专业的高清音视频编码产品&#xff0c;该产品具有支持4路高清HDMI音视频采集功能&#xff0c;4路3.5MM独立外接音频输入&#xff0c;编码输出双码流H.264格式&#xff0c;音频MP3/AAC格式。编码码率可调&#xff0c;画面质…

2024最新 PyCharm 2024.1 更新亮点看这篇就够了

2024最新 PyCharm 2024.1 更新亮点看这篇就够了 文章目录 2024最新 PyCharm 2024.1 更新亮点看这篇就够了&#x1f680; PyCharm 2024.1 发布&#xff1a;全面升级&#xff0c;助力高效编程&#xff01;摘要引言 &#x1f680; 快速掌握 Hugging Face&#xff1a;模型与数据集文…

武汉星起航助力跨境电商,专业选品与全方位服务引领行业新风尚

在全球跨境电商浪潮的推动下&#xff0c;越来越多的卖家纷纷将目光投向了这片广阔的市场。然而&#xff0c;如何在这片蓝海中脱颖而出&#xff0c;成为众多卖家关注的焦点。武汉星起航电子商务有限公司以其专业的选品建议和全方位的服务&#xff0c;为卖家们提供了一条成功的捷…

通讯录的实现(单链表版本)

我们首先要知道通讯录的实现是基于单链表的基础上的&#xff0c;所以我们首先要搞懂单链表。&#xff08;注意&#xff1a;今天的代码量较多&#xff09;&#xff0c;但这不是阻挡我们前进的脚步&#xff0c;冲冲冲&#xff01;&#xff01;&#xff01; 单链表的简要概述 我们…

python-study-day1-(病人管理系统-带sql)

MainWindow代码 from tkinter import * from tkinter import messagebox from tkinter.ttk import Comboboxclass MianWindow(Frame):def __init__(self, masterNone):super().__init__(master, padx30, pady20)self.flag 0self.pack(expandTrue, fillBOTH)self.id StringVa…

七大设计原则

在软件开发的领域中&#xff0c;随着技术的不断进步和市场需求的不断变化&#xff0c;软件系统的设计和维护变得越来越重要。为了确保软件系统能够长期有效地运行&#xff0c;并且能够在未来的发展中适应新的需求和技术变化&#xff0c;提高软件系统的可维护性和可复用性成为了…

【数字IC/FPGA】什么是无符号数?什么是有符号数?

进制 虽然在日常生活中&#xff0c;我们已经习惯了使用10进制数字&#xff0c;但在由数字电路构成的数字世界中&#xff0c;2进制才是效率更高的选择。 10进制与2进制 10进制&#xff08;decimal&#xff09;计数法&#xff08;一般也叫阿拉伯计数法&#xff09;是在日常生活…

SpringBoot集成Kafka之SASL_SSL

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Kafka 是一个由 Li…

软件无线电安全之HackRF One初探

HackRF介绍 HackRF是一款开源软件无线电&#xff08;SDR&#xff09;平台&#xff0c;由Great Scott Gadgets公司推出。它具有广泛的频率覆盖范围&#xff0c;从1 MHz到6 GHz&#xff0c;支持大部分常见的无线通信频段。采用软件定义无线电技术&#xff0c;HackRF提供了自定义…

最优算法100例之43-包含min函数的栈

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 题目描述: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈中,调用min,push及pop的时间复杂…