利用字典存储和查询键值对;
利用列表实现常用值更新:自定义规则,我这里是将最常用的放到末尾,最不常用的放到最前头位置。
#
# lru design
# @param operators int整型二维数组 the ops
# @param k int整型 the k
# @return int整型一维数组
#
class Solution:
#字典存储键值对;列表实现值常用性更新
dict_lru={}
list_lru=[]
def set(self,key,val,k):
self.dict_lru[key]=val
self.list_lru.append(key)
if len(self.list_lru)>k:
del self.dict_lru[self.list_lru[0]]
del self.list_lru[0]
def get(self,key):
if key in self.dict_lru:
self.list_lru.remove(key)
self.list_lru.append(key)
return self.dict_lru[key]
return -1
def LRU(self , operators , k ):
ret=[]
SET=1
GET=2
for items in operators:
if items[0]==SET:
self.set(str(items[1]), items[2], k)
elif items[0]==GET:
ret.append(self.get(str(items[1])))
return ret



京公网安备 11010502036488号