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

设计LRU缓存结构

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

#
# lru design
# @param operators int整型二维数组 the ops
# @param k int整型 the k
# @return int整型一维数组
#
class Solution:
    def LRU(self , operators , k ):
        # write code here
        lru = {} # 利用字典作为双向队列,左侧作为最不常用的,右侧作为最常用的
        l_return = []
        for opt in operators:
            if opt[0] == 1 :
                if len(lru) == k:#当满的时候,删除最不常用的
                    key = list(lru.keys())[0]
                    lru.pop(key)
                #若没满,则添加当前元素
                key = opt[1]
                value = opt[2]
                lru[key] = value
            if opt[0] == 2:
                key = opt[1]
                if key in lru:
                    value = lru[key]
                    l_return.append(value)
                    # 更新顺序
                    lru.pop(key) # 删除
                    lru[key] = value #移动到最右端
                else:
                    l_return.append(-1)
        return l_return
全部评论

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务