实现一个 LRU 缓存类,容量为 capacity,提供 get(key) 和 put(key, value) 方法,要求时间复杂度 O(1)。当缓存满时,淘汰最久未使用的键。
考察说明
考察哈希表与双向链表结合的 LRU 实现能力
回答思路
- 正确实现 get 和 put 的语义,更新访问顺序
- 使用哈希表定位节点时 O(1),双向链表维护 LRU 顺序
- 处理容量边界:put 已存在时更新值并移到头部,不存在且满时淘汰尾部
- 代码结构清晰,正确处理空链表和容量为 0 的边界情况
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。