#
# lru design
# @param operators int整型二维数组 the ops
# @param k int整型 the k
# @return int整型一维数组
#
class Solution:
def LRU(self , operators , k ):
self.huancun = {}
self.returnValue = []
for i in range(len(operators)):
if operators[i][0] == 1:
self.setValue(operators[i],k )
if operators[i][0] == 2:
self.getValue(operators[i])
return self.returnValue
def setValue(self, list_1, k):
if list_1[1] in self.huancun:
self.huancun.pop(list_1[1])
self.huancun[list_1[1]] = list_1[2]
else:
if len(self.huancun) == k:
self.huancun.pop(list(self.huancun.keys())[0])
self.huancun[list_1[1]] = list_1[2]
else:
self.huancun[list_1[1]] = list_1[2]
def getValue(self,list_1):
if list_1[1] in self.huancun:
self.returnValue.append(self.huancun[list_1[1]])
self.huancun.pop(list_1[1])
self.huancun[list_1[1]] = self.returnValue[-1]
else:
self.returnValue.append(-1)
# write code here