美文网首页
leetcode_146

leetcode_146

作者: 看到这朵小fa了么 | 来源:发表于2020-05-25 16:08 被阅读0次

    运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put ,均为O(1)复杂度存,。

    获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。
    写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。

    /**
     * @param {number} capacity
     */
    var LRUCache = function(capacity) {
        this.max = capacity
        this.map = new Map()
    };
    
    /** 
     * @param {number} key
     * @return {number}
     */
    LRUCache.prototype.get = function(key) {
    if(this.map.has(key)) {
        let value = this.map.get(key)
        this.map.delete(key)
        this.map.set(key, value)
        return value
    } else {
        return -1
    }
    };
    
    /** 
     * @param {number} key 
     * @param {number} value
     * @return {void}
     */
    LRUCache.prototype.put = function(key, value) {
        if (this.map.has(key)) {
        this.map.delete(key)
      }
      if(this.map.size === this.max){
        this.map.delete(this.map.keys().next().value)
      }
      this.map.set(key, value)
    };
    
    
    
    

    相关文章

      网友评论

          本文标题:leetcode_146

          本文链接:https://www.haomeiwen.com/subject/dxwyahtx.html