【LeetCode热题100(35/100)】LRU 缓存

题目地址: 链接
思路: 利用 this.map.keys() 按照顺序存储特性并且 O(1) 时间复杂度完成存取,可以很好完成题目,并且 get 和 put 时间复杂度都为 O(1)

当前js 代码不能通过所有案例,有大佬能解释一下吗?

js 复制代码
/**
 * @param {number} capacity
 */
var LRUCache = function(capacity) {
    this.capacity = capacity;
    this.map = new Map();
};

/** 
 * @param {number} key
 * @return {number}
 */
LRUCache.prototype.get = function(key) {
    let ans = -1;
    if(this.map.has(key)) {
        ans = this.map.get(key);
        this.map.delete(key);
        this.map.set(key, ans);
    }
    return ans;
};

/** 
 * @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.capacity) {
        let oldkey = this.map.keys().next().value;
        this.map.delete(oldkey);
    }
    this.map.set(key, value);
};

/** 
 * Your LRUCache object will be instantiated and called as such:
 * var obj = new LRUCache(capacity)
 * var param_1 = obj.get(key)
 * obj.put(key,value)
 */
相关推荐
神仙别闹2 分钟前
基于C++生成树思想的迷宫生成算法
开发语言·c++·算法
CoovallyAIHub13 分钟前
南京理工大学联手百度、商汤科技等团队推出Artemis:用结构化视觉推理革新多模态感知
深度学习·算法·计算机视觉
天才少女爱迪生15 分钟前
图像序列预测有什么算法方案
人工智能·python·深度学习·算法
cici1587418 分钟前
3D有限元直流电阻率法正演程序
算法·3d
黑色的山岗在沉睡22 分钟前
滤波算法数学前置——线性化
线性代数·算法
t1987512824 分钟前
火电机组热经济性分析MATLAB程序实现
人工智能·算法·matlab
Hello娃的33 分钟前
【半导体】肖特基接触AND欧姆接触
人工智能·算法
橘颂TA33 分钟前
【剑斩OFFER】算法的暴力美学——交易逆序对的总数
数据结构·算法·leetcode
xiyuping2436 分钟前
强化学习之——moutaincar
算法·机器学习
小画家~38 分钟前
第三十七:类型断言
开发语言·c++·算法·golang