其他分享
首页 > 其他分享> > LeetCode - LRU怎么将书架上的旧书完美淘汰呢

LeetCode - LRU怎么将书架上的旧书完美淘汰呢

作者:互联网

你有一排书架,有空时会拿些书来看,经常性会买些新书。无奈书架容量有限,当新买的书放不下时,需要一个策略将旧书淘汰。
LRU(最近最少使用)缓存淘汰机制正合适。
1)新买的书放在最左侧。
2)最近常看的书也放在最左侧。
久而久之,越往右边的书越是长时间没看,当有新书时,就从右侧淘汰起。Perfect。

下面一起来动手实现这个算法。附加条件只有一个,要在 O(1) 的时间复杂度内完成操作。

查找操作能在O(1)的数据结构: 哈希
增、删除操作能在O(1)的数据结构:链表
所以考虑哈希 + 单链 或哈希 +双链表。不过现实中,双链表的使用场景远多于单链表。
原因大家仔细考虑下,欢迎留言

标签:单链,旧书,LRU,哈希,双链,淘汰,LeetCode
来源: https://www.cnblogs.com/yeni/p/11571183.html