利用HashMap和双向链表实现LRU(最近最久未被使用)算法(LeetCode146题)
利用HashMap和双向链表实现LRU(最近最久未被使用)算法
一个场景,缓存机制,(用双向链表维护缓存区域,头节点为最久未被访问节点,尾节点为最近被访问的节点),缓存有限,优先替换出头节点,最近被访问的放到尾节点。
HashMap的作用:链表删除添加节点的时间复杂度为O(1),但是找到元素的时间复杂度为O(n),通过HashMap实现O(1)复杂度的节点查找。
不过多解释了,直接上代码了,不懂可以直接留言。
public class DoubleLinkedList implements Iterable
原创
2020-07-22 22:45:57 ·
231 阅读 ·
0 评论