LeetCode 146 - LRU缓存机制 是一道经典的数据结构设计问题,考察对 哈希表 和 双向链表 的结合使用,以及对缓存淘汰策略(Least Recently Used)的实现。该题目在工程实践中十分常见,解法及其变体对面试和实际生产开发都具有重要意义。
以下详细讲解不同解法、模板代码以及相关变体问题,帮助快速掌握并解决类似系统设计类问题。
题目描述
设计和实现一个 LRU (Least Recently Used) 缓存,要求实现以下功能:
get(key)
:如果key
在缓存中,返回其值;否则返回 -1。put(key, value)
:写入缓存,如果缓存容量已满,则淘汰 最近最少使用 的数据。
约束
- 必须在 O(1) 时间内完成
get
和put
操作。 - 缓存容量固定。
示例:</