题目截图
题目分析
- 实现LRU算法
- 继承LinkHashMap即可
- 需要一个removeEldestEntry,只要size() > capacity即可
ac code
class LRUCache extends LinkedHashMap<Integer, Integer>{
private int capacity;
public LRUCache(int capacity) {
super(capacity, 0.75F, true);
this.capacity = capacity;
}
public int get(int key) {
return super.getOrDefault(key, -1);
}
public void put(int key, int value) {
super.put(key, value);
}
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
return size() > capacity;
}
}
总结
- py也有OrderedDict可以继承搞定
- java就用LinkHashMap搞定!