请实现一个 LRU(最近最少使用)缓存,要求支持 get 和 put 操作,且 get 和 put 的平均时间复杂度为 O(1)。
考察说明
考察 LRU 缓存的数据结构设计和 O(1) 操作实现能力
回答思路
- 明确 LRU 语义:最近被访问的键应被保留,最久未访问的键被淘汰
- 选用哈希表加快访问,双向链表维护访问顺序
- 说明 get 命中时如何移动节点到链表头部,未命中返回 -1
- 说明 put 时若键已存在更新值并移动节点,若容量满则淘汰链表尾部
- 考虑边界情况:容量为 0、键重复、并发访问(如适用)
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。