LeetCode - LRU怎么将书架上的旧书完美淘汰呢
作者:互联网
你有一排书架,有空时会拿些书来看,经常性会买些新书。无奈书架容量有限,当新买的书放不下时,需要一个策略将旧书淘汰。
LRU(最近最少使用)缓存淘汰机制正合适。
1)新买的书放在最左侧。
2)最近常看的书也放在最左侧。
久而久之,越往右边的书越是长时间没看,当有新书时,就从右侧淘汰起。Perfect。
下面一起来动手实现这个算法。附加条件只有一个,要在 O(1) 的时间复杂度内完成操作。
查找操作能在O(1)的数据结构: 哈希
增、删除操作能在O(1)的数据结构:链表
所以考虑哈希 + 单链 或哈希 +双链表。不过现实中,双链表的使用场景远多于单链表。
原因大家仔细考虑下,欢迎留言
标签:单链,旧书,LRU,哈希,双链,淘汰,LeetCode 来源: https://www.cnblogs.com/yeni/p/11571183.html