Skip to content

Commit d8abf3e

Browse files
committed
add solution 146 [Solution.java]
1 parent b669342 commit d8abf3e

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

solution/146.Lru Cache/Solution.java

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,44 @@ class Node{
55
public Node pre;//指向前面的指针
66
public Node next;//指向后面的指针
77
public Node(int key,int value){
8-
this.val=value;
9-
this.key=key;
8+
this.val = value;
9+
this.key = key;
1010
}
1111
}
1212
class LRUCache {
1313
int capacity;//容量
1414
Node head;//双向链表的头,维护这个指针,因为set,get时需要在头部操作
1515
Node end;//双向链表的尾,set时,要是满了,需要将链表的最后一个节点remove
16-
HashMap<Integer,Node> map=new HashMap<Integer,Node>();//hash表
16+
HashMap<Integer,Node> map = new HashMap<Integer,Node>();//hash表
1717
public LRUCache(int capacity) {
18-
this.capacity=capacity;
18+
this.capacity = capacity;
1919
}
2020
//添加,删除尾部,插入头部的操作
2121
public void remove(Node node){
22-
Node cur=node;
23-
Node pre=node.pre;
24-
Node post=node.next;
25-
if(pre==null){//说明cur是头部节点
26-
head=post;
22+
Node cur = node;
23+
Node pre = node.pre;
24+
Node post = node.next;
25+
if(pre == null){//说明cur是头部节点
26+
head = post;
2727
}
28-
else pre.next=post;//更新指针,删除
29-
if(post==null){//说明cur是最后的节点
30-
end=pre;
28+
else pre.next = post;//更新指针,删除
29+
if(post == null){//说明cur是最后的节点
30+
end = pre;
3131
}
32-
else post.pre=pre;
32+
else post.pre = pre;
3333
}
3434
public void setHead(Node node){
3535
//直接插入
36-
node.next=head;
37-
node.pre=null;
38-
if(head!=null) head.pre=node;//防止第一次插入时为空
39-
head=node;
40-
if(end==null) end=node;
36+
node.next = head;
37+
node.pre = null;
38+
if(head != null) head.pre = node;//防止第一次插入时为空
39+
head = node;
40+
if(end==null) end = node;
4141
}
4242
public int get(int key) {
4343
if(map.containsKey(key)){
4444
//需要把对应的节点调整到头部
45-
Node latest=map.get(key);
45+
Node latest = map.get(key);
4646
remove(latest);
4747
setHead(latest);
4848
//返回value
@@ -54,18 +54,18 @@ public int get(int key) {
5454
public void put(int key, int value) {
5555
if(map.containsKey(key)){//这个key原来存在
5656
//只需要把key对应的node提到最前面,更新value
57-
Node oldNode=map.get(key);
58-
oldNode.val=value;
57+
Node oldNode = map.get(key);
58+
oldNode.val = value;
5959
remove(oldNode);
6060
setHead(oldNode);
6161
}
6262
else{
6363
//这个key原来不存在,需要重新new出来
64-
Node newNode=new Node(key,value);
64+
Node newNode = new Node(key,value);
6565
//接下来要考虑容量
66-
if(map.size()<capacity){
66+
if(map.size() < capacity){
6767
setHead(newNode);
68-
map.put(key,newNode);
68+
map.put(key, newNode);
6969
}
7070
else{
7171
//容量不够,需要先将map中,最不常使用的那个删除了删除
@@ -74,7 +74,7 @@ public void put(int key, int value) {
7474
remove(end);
7575
setHead(newNode);
7676
//放入新的
77-
map.put(key,newNode);
77+
map.put(key, newNode);
7878
}
7979
}
8080
}

0 commit comments

Comments
 (0)