题解 | #设计LRU缓存结构#
设计LRU缓存结构
http://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61
/** * 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 };