class LRUCache {
//双向链表实现,如何使得时间为O(1)?直接取下结点,在头尾插入
class DlinkedNode{
DlinkedNode next;
DlinkedNode pre;
int val; //值
int idx; //键
DlinkedNode(){}
DlinkedNode(int val){
this.val=val;
}
}
int capacity; //最大容量
int size=0; //当前容量
DlinkedNode head=new DlinkedNode(); //头尾结点
DlinkedNode tail=new DlinkedNode();
Map<Integer,DlinkedNode> map=new HashMap<>();
public LRUCache(int capacity) {
this.capacity=capacity;
head.next=tail;
tail.pre=head;
}
<
Java实现LRU,手写双向链表
最新推荐文章于 2024-02-14 13:09:00 发布