请实现一个 LRU 缓存,要求支持 get 和 put 操作,且两个操作的平均时间复杂度均为 O(1)。
考察说明
考察 LRU 缓存的核心数据结构设计与 O(1) 操作的实现能力
回答思路
- 明确使用哈希表加双向链表的组合来实现 O(1) 访问与删除
- 能正确实现 get 时命中节点移到链表头部及未命中返回 -1
- 能正确实现 put 时更新已有节点和容量满时淘汰末尾节点
- 能处理边界情况如容量为 0 或重复键
- 能分析各操作时间复杂度并解释为何选择该结构
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。