/**
* lru design
* @param operators int整型二维数组 the ops
* @param k int整型 the k
* @return int整型一维数组
*/
function LRU( operators , k ) {
// write code here
let arr = [];
let map = new Map();
for(let i = 0;i<operators.length;i++){
if(operators[i][0] === 1){
//set
if(map.has(operators[i][1])){
map.delete(operators[i][1])
map.set(operators[i][1],operators[i][2])
}else{
map.set(operators[i][1],operators[i][2])
if(map.size > k){
const firstKey = map.keys().next().value;//把最不常用的缓存清除
map.delete(firstKey);
}
}
}else{
//get
if(map.has(operators[i][1])){
arr.push(map.get(operators[i][1]))
let temp = map.get(operators[i][1])
map.delete(operators[i][1]);
map.set(operators[i][1], temp)
}else{
arr.push(-1)
}
}
}
return arr
}
module.exports = {
LRU : LRU
};