题目来源
LFU缓存可以通过:两个哈希表(Map结构) + 双向链表来实现。
我们可以定义两个哈希表keyMap和freqMap,其中:
- keyMap的键是"本题key",值为"双向链表节点node"
- freqMap的键是"本题key的使用次数freq",值为”对应使用次数freq的key对应的node组成的双向链表“
而双向链表节点node用于记录key的如下信息:
- key:本题的key
- val:本题的value
- freq:对应key使用次数
可能上面说法比较晦涩,下面通过图示来说:
LFU缓存可以通过:两个哈希表(Map结构) + 双向链表来实现。
我们可以定义两个哈希表keyMap和freqMap,其中:
而双向链表节点node用于记录key的如下信息:
可能上面说法比较晦涩,下面通过图示来说: