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

设计LRU缓存结构

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

class Solution:
    def LRU(self , operators , k ):
        # write code here
        if not operators or not k:
            return []
        List = []   #Cache
        res = []   #Results
        # set()
        def set(List, ele, k):
            for j in range(len(List)):
                if ele[1] == List[j][0]:
                    del List[j]
                    List.append([ele[1], ele[2]])
                    return
            if len(List) == k:
                del List[0]
            List.append([ele[1], ele[2]])
        # get()
        def get(List, ele, res):
            if len(List) == 0:
                res.append(-1)
            for j in range(len(List)):
                if ele[1] == List[j][0]:
                    sav = List[j]
                    del List[j]
                    List.append(sav)
                    res.append(sav[1])
                    break
                if j == len(List)-1:
                    res.append(-1)
        #input
        for ele in operators:
            if ele[0] == 1:
                set(List, ele, k)
            else:
                get(List, ele, res)
        return res
全部评论

相关推荐

喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
06-25 16:00
武汉大学 Java
工科研究生底薪工资就开3k啊??
机械打工仔:写文章提成的岗位工资低,你怪工科?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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