【哈希表】Leecode-146. LRU 缓存
【摘要】 【题目】【题解】题解1:思路 每次使用元素将元素拿到栈顶,如果插入导致栈溢出则删除栈底元素复杂度 时间复杂度:O(1),空间复杂度:O(n)代码class LRUCache: def __init__(self, capacity: int): self.cache = collections.defaultdict() sel...
【题目】
【题解】
题解1:
- 思路
每次使用元素将元素拿到栈顶,如果插入导致栈溢出则删除栈底元素
- 复杂度
时间复杂度:O(1),空间复杂度:O(n)
- 代码
class LRUCache:
def __init__(self, capacity: int):
self.cache = collections.defaultdict()
self.capacity = capacity
def get(self, key: int) -> int:
if key not in self.cache:
return -1
ret = self.cache.get(key)
self.cache.pop(key)
self.cache[key] = ret
return ret
def put(self, key: int, value: int) -> None:
if len(self.cache)<=self.capacity:
if key not in self.cache:
self.cache[key] = value
else:
self.cache.pop(key)
self.cache[key] = value
else:
self.cache.pop(list(self.cache.keys())[0])
self.cache[key] = value
# Your LRUCache object will be instantiated and called as such:
# obj = LRUCache(capacity)
# param_1 = obj.get(key)
# obj.put(key,value)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)