码迷,mamicode.com
首页 > 系统相关 > 详细

146-LRUCache

时间:2019-08-22 22:11:59      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:main   self   返回   容量   最新   __init__   color   style   pre   

题目:设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。

class LRUCache(object):
    def __init__(self,capacity):
        self.dic = {}
        self.remain = capacity
    def get(self,key):
        if key not in self.dic:
            return -1
        value = self.dic.pop(key)
        self.dic[key] = value
        return value

    def put(self,key,value):
        if key in self.dic:
            self.dic.pop(key)
        else:
            if self.remain>0:
                self.remain-=1
            else:
                self.dic.pop(list(dic)[0])
        self.dic[key] = value

  注:

使用字典加一个缓存容量来实现。取值时,先判断缓存中有没有该值,若没有直接返回-1;若有,返回,此时需要更新该值的位置为最新,巧妙的方式是先弹出该值,再读入该值。

存值时先判断该值在不在缓存,此处也要进行值的更新。如果不存在,在判断缓存还有没容量,有容量的话,直接减1;没有的话弹出最早的元素。最后在存入值。

146-LRUCache

标签:main   self   返回   容量   最新   __init__   color   style   pre   

原文地址:https://www.cnblogs.com/kingshine007/p/11397001.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!