当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。
LRU 缓存
中等lruCache()时间限制 2000 ms内存限制 128 MB复杂度要求 时间 get/put O(1),空间 O(capacity)
LRU 缓存
请你设计并实现一个满足 LRU(最近最少使用)缓存约束的数据结构。
与力扣原题语义一致,此处采用函数式接口:传入容量、操作名数组和参数数组,依次执行并返回每次操作的结果。
接口
- 第一个参数
capacity是缓存容量。 operations[0]恒为"LRUCache"(构造,跳过)。"get":参数为[key],返回值;若 key 不存在返回-1。"put":参数为[key, value],返回null;若超出容量,驱逐最近最少使用的 key。
输入
capacity:缓存容量operations:操作名数组,首项为"LRUCache"values:二维数组,get时为[key],put时为[key, value]
输出
按顺序返回每个非构造操作的结果:get 返回数字(不存在为 -1),put 返回 null。
示例
输入:
capacity = 2
operations = ["LRUCache","put","put","get","put","get","put","get","get","get"]
values = [[],[1,1],[2,2],[1],[3,3],[2],[4,4],[1],[3],[4]]
输出:
[null, null, 1, null, -1, null, -1, 3, 4]
解释:
- put(1,1)、put(2,2)
- get(1) → 1
- put(3,3):容量满,驱逐 key 2
- get(2) → -1
- put(4,4):驱逐 key 1
- get(1) → -1,get(3) → 3,get(4) → 4
Loading...
输入
[2,["LRUCache","put","put","get","put","get","put","get","get","get"],[[],[1,1],[2,2],[1],[3,3],[2],[4,4],[1],[3],[4]]]
预期输出
[null,null,1,null,-1,null,-1,3,4]