设计LRU缓存结构

图片说明

/**
 * lru design
 * @param operators int整型二维数组 the ops
 * @param k int整型 the k
 * @return int整型一维数组
 */
function LRU( operators ,  k ) {
    // write code here
    let cache = new Map()
    let result = []
    for(let item of operators){
        if(item[0]==1){
            if(cache.size < k){
                if(cache.has(item[1])){
                    cache.delete(item[1])
                }
                cache.set(item[1],item[2])
            }else {
                cache.delete(cache.keys().next().value)
                cache.set(item[1],item[2])
            }
        }else if(item[0]==2){
           if(cache.has(item[1])){
                let value = cache.get(item[1])
                cache.delete(item[1])
                cache.set(item[1],value)
                result.push(value)
            }else{
                result.push(-1)
            }
        }
    }
    return result
}
module.exports = {
    LRU : LRU
};
其他算法 文章被收录于专栏

其他算法

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务