(100分)- 内存冷热标记(Java  JS  Python  C)
(100分)- 内存冷热标记Java JS Python C题目描述现代计算机系统中通常存在多级的存储设备针对海量 workload 的优化的一种思路是将热点内存页优先放到快速存储层级这就需要对内存页进行冷热标记。一种典型的方案是基于内存页的访问频次进行标记如果统计窗口内访问次数大于等于设定阈值则认为是热内存页否则是冷内存页。对于统计窗口内跟踪到的访存序列和阈值现在需要实现基于频次的冷热标记。内存页使用页框号作为标识。输入描述第一行输入为 N表示访存序列的记录条数0 N ≤ 10000。第二行为访存序列空格分隔的 N 个内存页框号页面号范围 0 ~ 65535同一个页框号可能重复出现出现的次数即为对应框号的频次。第三行为热内存的频次阈值 T正整数范围 1 ≤ T ≤ 10000。输出描述第一行输出标记为热内存的内存页个数如果没有被标记的热内存页则输出 0 。如果第一行 0则接下来按照访问频次降序输出内存页框号一行一个频次一样的页框号页框号小的排前面。用例输入101 2 1 2 1 2 1 2 1 25输出212说明内存页1和内存页2均被访问了5次达到了阈值5因此热内存页有2个。内存页1和内存页2的访问频次相等页框号小的排前面。输入51 2 3 4 53输出0说明访存跟踪里面访存频次没有超过3的因此热内存个数为0。题目解析多条件排序的实现方案。具体逻辑详见代码实现部分。JavaScript算法源码const rl require(readline).createInterface({ input: process.stdin }); var iter rl[Symbol.asyncIterator](); const readline async () (await iter.next()).value; void (async function () { const n parseInt(await readline()); const seqs (await readline()).split( ).map(Number); const cnts {}; for (let num of seqs) { cnts[num] (cnts[num] ?? 0) 1; // ?? 是高级语法如果cnts[num]为null或者undefined时返回0实际牛客环境可能不支持 } const threshold parseInt(await readline()); // Object.entries返回的是数组返回值数组的元素也是一个数组[key, value]其中key,value就是对象的键值对 const entries Object.entries(cnts).filter((a) a[1] threshold); console.log(entries.length); // entries元素数组的索引0是对象key索引1是对象val entries .sort((a, b) (a[1] ! b[1] ? b[1] - a[1] : a[0] - b[0])) .forEach((a) console.log(a[0])); })();Java算法源码import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); int n sc.nextInt(); HashMapInteger, Integer cnts new HashMap(); for (int i 0; i n; i) { int num sc.nextInt(); cnts.put(num, cnts.getOrDefault(num, 0) 1); } int threshold sc.nextInt(); cnts.keySet().removeIf(num - cnts.get(num) threshold); System.out.println(cnts.size()); cnts.entrySet().stream() .sorted( (a, b) - a.getValue() - b.getValue() ! 0 ? b.getValue() - a.getValue() : a.getKey() - b.getKey()) .forEach(a - System.out.println(a.getKey())); } }Python算法源码# 输入获取 n int(input()) seqs list(map(int, input().split())) threshold int(input()) # 统计各个内存页框号出现的次数 cnts {} for num in seqs: cnts.setdefault(num, 0) cnts[num] 1 # 过滤出现次数达到阈值的内存页即热内存页数量 items list(filter(lambda x: x[1] threshold, cnts.items())) # 打印热内存页数量 print(len(items)) # 如果存在热内存页 if len(items) 0: # 那么优先按照访问频次降序如果访问频次相同则再按页框号升序items中记录元素是[页框号, 访问频次] items.sort(keylambda x: (-x[1], x[0])) for num, _ in items: print(num)C算法源码#include stdio.h #include stdlib.h #define MAX_SIZE 10000 typedef struct Mem { int num; int count; } Mem; int cmp(const void *a, const void *b) { Mem *A *((Mem **) a); Mem *B *((Mem **) b); if (A-count ! B-count) { return B-count - A-count; } else { return A-num - B-num; } } int main() { int n; scanf(%d, n); Mem *mem[MAX_SIZE]; int mem_size 0; for (int i 0; i n; i) { int num; scanf(%d, num); int j 0; for (; j mem_size; j) { if (mem[j]-num num) { mem[j]-count; break; } } if(j mem_size) continue; mem[mem_size] (Mem *) malloc(sizeof(Mem)); mem[mem_size]-num num; mem[mem_size]-count 1; mem_size; } int threshold; scanf(%d, threshold); qsort(mem, mem_size, sizeof(Mem *), cmp); int hot_mem_size mem_size; for (int i 0; i mem_size; i) { if (mem[i]-count threshold) { hot_mem_size i; break; } } printf(%d\n, hot_mem_size); for (int i 0; i hot_mem_size; i) { printf(%d\n, mem[i]-num); } return 0; }

相关新闻

智能安防中的行人识别技术

智能安防中的行人识别技术

智能安防中的行人识别技术 行人检测与行人再标识是智能安防系统中的关键技术。行人检测是计算机视觉领域的一个重要研究方向,不同行人之间的表观差异较大,如行人的服装、姿态变化。基于深度学习的方法在性能上更有优势,成为该领域的主流方法。…

2026/7/5 4:17:18 阅读更多 →
SpringBoot+Vue 疫情防控管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

SpringBoot+Vue 疫情防控管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL

摘要 在当今全球化的背景下,突发公共卫生事件对社会稳定和人民健康构成严峻挑战。疫情防控管理系统的开发成为提升公共卫生应急响应能力的重要工具。传统的人工管理方式效率低下,难以应对大规模疫情数据的实时采集、分析和共享需求。通过信息化手段构建疫…

2026/7/6 17:18:55 阅读更多 →
Linux系统常用命令(其三)进程与系统监控、文件权限

Linux系统常用命令(其三)进程与系统监控、文件权限

前言 本节介绍几个常用的进程系统相关的命令,还有修改文件和用户权限等。 一、ps ps是查看进程信息。如果只是ps,没有参数,则默认显示当前终端中由当前用户启动的进程,显示其进程号,信息有限。另外,还有几种…

2026/7/5 18:20:10 阅读更多 →

最新新闻

SPI EEPROM与Cortex-M4的高可靠性嵌入式存储方案

SPI EEPROM与Cortex-M4的高可靠性嵌入式存储方案

1. 项目背景与核心需求在嵌入式系统设计中,数据存储的可靠性始终是开发者面临的关键挑战之一。当系统意外断电或发生故障时,如何确保关键数据不丢失?这正是非易失性存储技术要解决的核心问题。M95M02-DR作为意法半导体(ST)推出的2Mb SPI EEPR…

2026/7/6 22:29:21 阅读更多 →
嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

嵌入式系统电源管理:TPS65263与PIC32MZ实战设计

1. 项目背景与核心需求在嵌入式系统开发中,电源管理一直是个关键挑战。随着现代MCU和外设的复杂度提升,单一电压轨已经无法满足需求。我最近在为一个工业传感器项目设计供电方案时,就遇到了需要同时提供1.8V、3.3V和5V三种电压的棘手情况。传…

2026/7/6 22:25:18 阅读更多 →
海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视 SDK V6.1.4.7 Java 二次开发:SpringBoot 集成 3 大核心功能(预览/回放/云台)

海康威视SDK V6.1.4.7 Java二次开发:SpringBoot集成3大核心功能实战指南在智能安防领域,海康威视设备占据着重要市场份额。本文将带您从零开始构建一个基于SpringBoot的企业级视频监控管理系统,实现设备实时预览、录像回放和云台控制三大核心…

2026/7/6 22:25:18 阅读更多 →
如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案

如何快速获取音乐歌词:一站式歌词下载解决方案 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到音乐歌词而烦恼吗?163MusicLyrics是一…

2026/7/6 22:21:04 阅读更多 →
直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

直流电机驱动系统优化:TC78H660FTG与PIC18F87J11方案

1. 项目背景与核心器件选型 在工业自动化和消费电子领域,直流电机驱动系统的效率优化一直是工程师面临的关键挑战。TC78H660FTG作为东芝新一代H桥驱动器,与Microchip的PIC18F87J11微控制器组合,为解决这一问题提供了创新方案。 1.1 TC78H66…

2026/7/6 22:19:03 阅读更多 →
Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

Flink Web UI未授权访问漏洞修复实战:从原理到Nginx反向代理加固

1. 项目概述:一次真实的Flink安全加固实战最近在梳理线上数据平台的资产时,安全扫描工具突然弹出一个高危告警:Apache Flink Web Dashboard存在未授权访问漏洞。这个告警让我心头一紧,因为这意味着任何能访问到Flink Web UI地址的…

2026/7/6 22:15:01 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻