利用字典存储和查询键值对;
利用列表实现常用值更新:自定义规则,我这里是将最常用的放到末尾,最不常用的放到最前头位置。
# # 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