手写LRU缓存算法
不罗嗦背景,写干货。
题目分析:
采用的数据结构:hash + 双向链表。
原因:hashmap可以满足。添加 O(1) 复杂度
双向链表可以满足插入与删除O(1)时间复杂度。
为什么不用单链表? 因为单链表的删除时间复杂度是O(N).
数据结构是:hashmap。 k是int值,v是双链表的节点。
如下:
HashMap<Integer, DLinkedNode> cache = new HashMap<>();
注意泛型的含义。
首先定义双链表:
//定义双链表的节点
原创
2021-11-04 16:20:44 ·
250 阅读 ·
0 评论