题解 | #设计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
全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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