AlgoMooc

H100079. LRU 缓存 ACM 版

中等

通过率 0% · 提交 0 · 通过 0

Hot100 ACM 开放训练 · 配套 LeetCode 146 图解动画 · 标准输入输出练习看动画讲解

实现一个 LRU 缓存。给定容量 capacity 和 q 个操作,PUT key value 表示写入,GET key 表示查询。缓存满时淘汰最久未使用的键。请输出所有 GET 操作的结果,未命中输出 -1。

这题属于 Hot100 ACM 开放训练中的「哈希与双向链表」方向。建议先看动画确认核心思路,再回到右侧编辑器按标准输入输出写完整代码。

输入描述

第一行输入两个整数 capacity 和 q。接下来 q 行,每行是 PUT key value 或 GET key。

输出描述

输出所有 GET 结果,用一个空格分隔。

示例

示例 1

输入示例

2 10
PUT 1 1
PUT 2 2
GET 1
PUT 3 3
GET 2
PUT 4 4
GET 1
GET 3
GET 4
GET 2

输出示例

1 -1 -1 3 4 -1
说明:容量为 2,按最近使用顺序淘汰。

时间限制 2000 ms · 内存限制 256 MB