NC93 设计LRU缓存结构

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
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值