Skip to content

Commit b669342

Browse files
committed
add solution 146 [README.md]
1 parent a04bd00 commit b669342

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

solution/146.Lru Cache/README.md

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -35,44 +35,44 @@ class Node{
3535
public Node pre;//指向前面的指针
3636
public Node next;//指向后面的指针
3737
public Node(int key,int value){
38-
this.val=value;
39-
this.key=key;
38+
this.val = value;
39+
this.key = key;
4040
}
4141
}
4242
class LRUCache {
4343
int capacity;//容量
4444
Node head;//双向链表的头,维护这个指针,因为set,get时需要在头部操作
4545
Node end;//双向链表的尾,set时,要是满了,需要将链表的最后一个节点remove
46-
HashMap<Integer,Node> map=new HashMap<Integer,Node>();//hash表
46+
HashMap<Integer,Node> map = new HashMap<Integer,Node>();//hash表
4747
public LRUCache(int capacity) {
48-
this.capacity=capacity;
48+
this.capacity = capacity;
4949
}
5050
//添加,删除尾部,插入头部的操作
5151
public void remove(Node node){
52-
Node cur=node;
53-
Node pre=node.pre;
54-
Node post=node.next;
55-
if(pre==null){//说明cur是头部节点
56-
head=post;
52+
Node cur = node;
53+
Node pre = node.pre;
54+
Node post = node.next;
55+
if(pre == null){//说明cur是头部节点
56+
head = post;
5757
}
58-
else pre.next=post;//更新指针,删除
59-
if(post==null){//说明cur是最后的节点
60-
end=pre;
58+
else pre.next = post;//更新指针,删除
59+
if(post == null){//说明cur是最后的节点
60+
end = pre;
6161
}
62-
else post.pre=pre;
62+
else post.pre = pre;
6363
}
6464
public void setHead(Node node){
6565
//直接插入
66-
node.next=head;
67-
node.pre=null;
68-
if(head!=null) head.pre=node;//防止第一次插入时为空
69-
head=node;
70-
if(end==null) end=node;
66+
node.next = head;
67+
node.pre = null;
68+
if(head != null) head.pre = node;//防止第一次插入时为空
69+
head = node;
70+
if(end==null) end = node;
7171
}
7272
public int get(int key) {
7373
if(map.containsKey(key)){
7474
//需要把对应的节点调整到头部
75-
Node latest=map.get(key);
75+
Node latest = map.get(key);
7676
remove(latest);
7777
setHead(latest);
7878
//返回value
@@ -84,18 +84,18 @@ class LRUCache {
8484
public void put(int key, int value) {
8585
if(map.containsKey(key)){//这个key原来存在
8686
//只需要把key对应的node提到最前面,更新value
87-
Node oldNode=map.get(key);
88-
oldNode.val=value;
87+
Node oldNode = map.get(key);
88+
oldNode.val = value;
8989
remove(oldNode);
9090
setHead(oldNode);
9191
}
9292
else{
9393
//这个key原来不存在,需要重新new出来
94-
Node newNode=new Node(key,value);
94+
Node newNode = new Node(key,value);
9595
//接下来要考虑容量
96-
if(map.size()<capacity){
96+
if(map.size() < capacity){
9797
setHead(newNode);
98-
map.put(key,newNode);
98+
map.put(key, newNode);
9999
}
100100
else{
101101
//容量不够,需要先将map中,最不常使用的那个删除了删除
@@ -104,7 +104,7 @@ class LRUCache {
104104
remove(end);
105105
setHead(newNode);
106106
//放入新的
107-
map.put(key,newNode);
107+
map.put(key, newNode);
108108
}
109109
}
110110
}

0 commit comments

Comments
 (0)