题解 | #设计LRU缓存结构#
设计LRU缓存结构
http://www.nowcoder.com/practice/5dfded165916435d9defb053c63f1e84
JS的map实现
/**
* @param {number} capacity*/
var Solution = function(capacity) {
this.max = capacity;
this.map = new Map();
};
/**
* @param {number} key
* @return {number}
*/
Solution.prototype.get = function(key) {
if(this.map.has(key)){
let value = this.map.get(key);
this.map.delete(key);
this.map.set(key, value);
return value;
}else{
return -1;
}
};
/**
* @param {number} key
* @param {number} value
* @return {void}
*/
Solution.prototype.set = function(key, value) {
if(this.map.has(key)){
this.map.delete(key);
}else if(this.map.size === this.max){
let last = this.map.keys().next();this.map.delete(key);
}else if(this.map.size === this.max){
this.map.delete(last.value);
}
this.map.set(key, value);
};
module.exports = {
Solution : Solution
};
查看25道真题和解析