题解 | #设计LRU缓存结构#

设计LRU缓存结构

http://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61

C++

能过但是复杂度超了

class Solution {
public:
    /**
     * lru design
     * @param operators int整型vector<vector<>> the ops
     * @param k int整型 the k
     * @return int整型vector
     */
    vector<pair<int,int>> lruMap;
    void Set(int key,int value,int k)
    {
        if(lruMap.size() >= k)
        {
            lruMap.erase(lruMap.begin());
        }
        for(auto& i : lruMap)
        {
            if(i.first == key)
            {
                i.second = value;
                return;
            }
        }
        lruMap.push_back(make_pair(key, value));
        return;
    }
    int Get(int key)
    {
        for(auto i = lruMap.begin();i!=lruMap.end();++i)
        {
            if(i->first == key)
            {
                pair<int,int> p{i->first,i->second};
                lruMap.erase(i);
                lruMap.push_back(p);
                return p.second;
            }
        }
        return -1;
    }
    vector<int> LRU(vector<vector<int> >& operators, int k) 
    {
        vector<int> res;
        for(auto i : operators)
        {
            if(i[0] == 1)
            {
                Set(i[1],i[2],k);
            }
            if(i[0]==2)
            {
                res.push_back(Get(i[1]));
            }
        }
        return res;
    }
};
全部评论

相关推荐

10-16 19:39
已编辑
门头沟学院 Java
小马云表哥:03男巨蟹座,喜欢家暴,爱好出轨,吃喝嫖赌样样精通,收入不固定,主要看女方给我多少钱,不会做家务,不会做饭,身高155体重190,爱玩马超,喜欢玩火影,喜欢陪岳父岳母爬山 爱玩原神😋
点赞 评论 收藏
分享
羊村懒哥:学历基本到点,考个研吧
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务