146 LRU Cache
使用OrderedDict类实现, 使用 move_to___end 方法,对于LRU Cache进行模拟
class LRUCache(object):
def __init__(self, capacity):
"""
:type capacity: int
"""
self.capacity = capacity
self.ordered_dict = collections.OrderedDict()
def get(self, key):
"""
:type key: int
:rtype: int
"""
if key not in self.ordered_dict:
return -1
self.ordered_dict.move_to_end(key)
return self.ordered_dict[key]
def put(self, key, value):
"""
:type key: int
:type value: int
:rtype: None
"""
if key in self.ordered_dict:
self.ordered_dict.move_to_end(key)
self.ordered_dict[key] = value
if len(self.ordered_dict) > self.capacity:
self.ordered_dict.popitem(last = False
# Your LRUCache object will be instantiated and called as such:
# obj = LRUCache(capacity)
# param_1 = obj.get(key)
# obj.put(key,value)