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

设计LRU缓存结构

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

class Solution {
public:
    /**
     * lru design
     * @param operators int整型vector<vector<>> the ops
     * @param k int整型 the k
     * @return int整型vector
     */
    vector<int> LRU(vector<vector<int> >& operators, int k) {
        // write code here
        int num=0;
        map<int, int> m;
        list<int> l;
        vector<int> res;
        for(vector<vector<int>>::iterator it=operators.begin();it!=operators.end();it++)
        {
            if((*it).at(0)==1)
            {
                if(num<k)
                {
                    map<int,int>::iterator itt = m.find((*it).at(1));
                    if(itt!=m.end())
                    {
                        m.erase(itt);
                    }
                    m.insert(pair<int,int>((*it).at(1),(*it).at(2)));
                    l.push_back((*it).at(1));
                    num++;
                }
                else
                {
                    m.insert(pair<int,int>((*it).at(1),(*it).at(2)));
                    l.pop_front();
                    l.push_back((*it).at(1));
                }
            }
            if((*it).at(0)==2)
            {
                map<int,int>::iterator iter1;
                iter1 = m.find((*it).at(1));
                list<int>::iterator iter = l.end();
                for(list<int>::iterator vit=l.begin();vit!=l.end();vit++)
                {
                    if(*vit==(*it).at(1))
                    {
                        iter=vit;
                    }
                }
                if(iter!=l.end())
                {
                    res.push_back(iter1->second);
                    l.erase(iter);
                    
                    l.push_back((*it).at(1));
                }
                else
                {
                    res.push_back(-1);
                }
            }
        }
        return res;
    }
};
全部评论

相关推荐

我:“加班需要有加班工资。”&nbsp;hr:“为什么?”&nbsp;哈哈哈哈哈哈哈离大谱
juntenor:你确实太理想化了,对社会不了解呀。这个和HR没有关系,这是国内特色,不然怎么还会有外包就这种逆天的存在呢。
点赞 评论 收藏
分享
05-13 02:01
已编辑
惠州学院 前端工程师
安静的少年在求佛:建议把公司名字写到标题。以后有人想搜就能直接搜到
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务