运用有序字典保存顺序。
from collections import OrderedDict
class Solution: def LRU(self , operators: List[List[int]], k: int) -> List[int]: # write code here result = [] cache_index = [] cache = OrderedDict()
for op in operators:
# set操作
if op[0] == 1:
if op[1] in cache.keys():
cache[op[1]] = op[2]
else:
if len(cache) < k:
cache[op[1]] = op[2]
else:
first_key = list(cache.keys())[0]
cache.pop(first_key)
cache[op[1]] = op[2]
# get操作
else:
if op[1] in cache.keys():
result.append(cache[op[1]])
cache.move_to_end(op[1])
else:
result.append(-1)
return result