题解 | #设计LRU缓存结构#

设计LRU缓存结构

http://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61

因为字典是无序的,用列表去保存set、get操作的顺序

class Solution:
    def LRU(self , operators: List[List[int]], k: int) -> List[int]:
        # write code here
        opt_dict, opt_list = {}, []

        def set(key, val):
            if len(opt_list) < k:
                opt_dict[key] = val
                opt_list.append(key)
            else:
                del opt_dict[opt_list.pop(0)]
                opt_dict[key] = val
                opt_list.append(key)

        def get(key):
            if key in opt_dict.keys():
                opt_list.remove(key)
                opt_list.append(key)
                return opt_dict[key]
            else:
                return -1

        sol = []
        for l in operators:
            if l[0] == 1: set(l[1], l[2])
            else:
                sol.append(get(l[1]))
        return sol
全部评论

相关推荐

07-20 21:57
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务