尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
华为题:LRU 缓存
请你设计并实现一个满足 LRU最近最少使用缓存约束的数据结构。实现LRUCache类LRUCache(int capacity)以正整数capacity初始化 LRU 缓存。int get(int key)如果关键字key存在于缓存中则返回其值否则返回-1。void put(int key, int value)如果关键字key已存在则变更其值为value如果不存在则插入该键值对。如果插入导致容量超出则逐出最久未使用的关键字。输入描述第一行输入一个整数capacity。第二行输入一个整数m表示操作次数。接下来m行每行输入一个操作get keyput key value输出描述对于每个get操作输出查询结果。示例 1输入text2 5 put 1 1 put 2 2 get 1 put 3 3 get 2输出text1 -1C 解法cpp#include bits/stdc.h using namespace std; class LRUCache { private: int cap; listpairint,int cache; unordered_mapint, listpairint,int::iterator mp; public: LRUCache(int capacity) : cap(capacity) {} int get(int key) { if (!mp.count(key)) return -1; auto it mp[key]; int value it-second; cache.erase(it); cache.push_front({key, value}); mp[key] cache.begin(); return value; } void put(int key, int value) { if (mp.count(key)) { cache.erase(mp[key]); } else if ((int)cache.size() cap) { int oldKey cache.back().first; cache.pop_back(); mp.erase(oldKey); } cache.push_front({key, value}); mp[key] cache.begin(); } }; int main() { int capacity; cin capacity; int m; cin m; LRUCache lru(capacity); while (m--) { string op; cin op; if (op get) { int key; cin key; cout lru.get(key) endl; } else if (op put) { int key, value; cin key value; lru.put(key, value); } } return 0; }
RELATED

相关推荐

华为交换机VLAN批量配置实战:端口组与批量绑定核心技巧

华为交换机VLAN批量配置实战:端口组与批量绑定核心技巧

1. 为什么VLAN批量配置是网络工程师的“基本功”,而不是“选修课”在某高校数据中心机房里,我第一次接手核心交换机维护时,被要求给新上线的20间智慧教室划分独立网络。每间教室需要3个端口:一个接教师终端、一个接学生终端、一个…

📅 2026/10/14 3:45:02
数据泄漏风险偏倚评估:一篇给初学者的元分析入门指南

数据泄漏风险偏倚评估:一篇给初学者的元分析入门指南

👋 Hi,我擅长 AI 大模型应用落地、意识解码与 AI 开发工具链 。 💡 创业路上,用技术换时间,一起把 AI 变成生产力 🚀 >数据泄漏风险偏倚评估:一篇给初学者的元分析入门指南想象一下&#xff…

📅 2026/10/14 3:45:02
华为题:零钱兑换

华为题:零钱兑换

给定不同面额的硬币 coins 和一个总金额 amount,请计算凑成总金额所需的最少硬币个数。如果没有任何一种硬币组合能组成总金额,输出 -1。每种硬币的数量是无限的。输入描述第一行输入一个整数 n,表示硬币种类数。第二行输入 n 个整数&#xf…

📅 2026/10/14 3:45:02
MORE NEWS

更多资讯

📰

随机化快排实战:防退化、稳性能、抗恶意输入

1. 这不是教科书里的“快速排序”,而是我在真实项目里天天调的那版你点开这个标题,大概率是刚学完《算法导论》第7章,对着伪代码发呆:为什么教材上写“随机选择主元”就一句话,可真到Java里写出来,却总在边…

📰

圆形物体检测实战:霍夫变换与分割模型选型及参数调优指南

简介:圆形物体检测系统是一套基于改进YOLOv8的完整工程方案,面向计算机视觉开发者、深度学习者及机器视觉岗位从业者,重点解决标准YOLO模型对圆形目标检测精度不足的问题。系统针对圆形物体的几何特征做了模型结构优化,配有专门标…

📰

从目录结构读懂自动化编排框架 OpenClaw 的架构设计与扩展机制

拿到一个开源仓库,绝大多数人的第一反应是先去翻README,看它“能干什么”。我反而习惯先退到最外层,把目录树整个过一遍。一个项目如果连目录都分得含糊,代码大概率也清爽不到哪去;反过来,目录分得利落&…

📰

如何在Java中打印pdf静默打印和打印对话框选择

PDF打印是日常Java后端和桌面开发场景中常见的业务需求,例如报表打印、文档单据打印和文档存档打印。Java本身提供了核心的打印APIjava.awt.print。但是,这个本地API不能直接解析和呈现PDF文档。第三方PDF解析库需要与它一起工作,以实现完整的…

📰

HTTP重定向深度解析:状态码语义、服务端实现与常见陷阱

1. 从一个被忽视的细节说起:Response重定向到底在解决什么问题很多人第一次接触“Response重定向”,是在调试接口的时候。前端发了一个请求,后端返回了302,浏览器自动跳到了另一个地址,然后前端同学一脸茫然地问&#…

📰

9款AI论文工具实测:专科生开题报告从空白到初稿的完整流程

如果你现在正对着空白的文档编辑器发呆,光标停在“开题报告”四个字的标题下面闪了半天,一个多小时过去了还只有那四个字,那你和论文季刚开始时的我没什么两样。我拖了两周没动笔的开题报告,后来换成“AI工具打底、人工改稿”的流…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬