[LeetCode] LFU Cache 最近最不常用页面置换缓存器

Posted Grandyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] LFU Cache 最近最不常用页面置换缓存器相关的知识,希望对你有一定的参考价值。

 

Design and implement a data structure for Least Frequently Used (LFU) cache. It should support the following operations: get and put.

get(key) - Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1.
put(key, value) - Set or insert the value if the key is not already present. When the cache reaches its capacity, it should invalidate the least frequently used item before inserting a new item. For the purpose of this problem, when there is a tie (i.e., two or more keys that have the same frequency), the least recently used key would be evicted.

Follow up:
Could you do both operations in O(1) time complexity?

Example:

LFUCache cache = new LFUCache( 2 /* capacity */ );

cache.put(1, 1);
cache.put(2, 2);
cache.get(1);       // returns 1
cache.put(3, 3);    // evicts key 2
cache.get(2);       // returns -1 (not found)
cache.get(3);       // returns 3.
cache.put(4, 4);    // evicts key 1.
cache.get(1);       // returns -1 (not found)
cache.get(3);       // returns 3
cache.get(4);       // returns 4

 

s

 

以上是关于[LeetCode] LFU Cache 最近最不常用页面置换缓存器的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode] 460. LFU Cache

LFU缓存

如何实现最不常用(LFU)缓存?

LFU(最近最不常用)实现(python)

Leetcode刷题LFU缓存

Cache替换算法