NC93 设计LRU缓存结构
题目:
代码如下:
/**
* lru design
* @param operators int整型二维数组 the ops
* @param k int整型 the k
* @return int整型一维数组
*/
function LRU( operators , k ) {
let hashMap = new Map();
let list = [];
operators.forEach((item)=>{
if(item[0] === 1){
if(hashMap.size>=k){
let arr = Array.from(hashMap.keys()) //将hash字典所包含的所有键名以数组形式返回
hashMap.delete(arr[0]); //超过限制移除
}
hashMap.set(item[1],item[2]);
}else if(hashMap.has(item[1])){ 以下操作是把key设为最新
let val = hashMap.get(item[1]);
hashMap.delete(item[1]);
hashMap.set(item[1],val);
list.push(val);
}else{
list.push(-1)
}
})
return list;
}
module.exports = {
LRU : LRU
};