LeetCode
Code
It will be great to implement LinkedList by myself, I use JDK LinkedList directly
class LRUCache {
private LinkedList<Integer> list = new LinkedList<>();
private Map<Integer, Integer> map = new HashMap<>();
private final int cap;
public LRUCache(int capacity) {
this.cap = capacity;
}
public int get(int key) {
Integer result = map.get(key);
if (result == null) {
return -1;
} else {
list.remove(Integer.valueOf(key));
list.addFirst(key);
}
return result;
}
public void put(int key, int value) {
Integer result = map.get(key);
if (result != null) {
list.remove(Integer.valueOf(key));
} else {
if (map.size() == cap) {
map.remove(list.removeLast());
}
}
list.addFirst(key);
map.put(key, value);
}
}
沒有留言:
張貼留言