设计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
};

猜你喜欢

转载自blog.csdn.net/weixin_45284354/article/details/113834756
今日推荐