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

设计LRU缓存结构

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

lru design

@param operators int整型二维数组 the ops

@param k int整型 the k

@return int整型一维数组

class Solution:
def LRU(self , operators , k ):
# write code here
kv={}
rs=[]
for x in operators:
opt=x[0]
if opt==1:
if len(kv)>=k:
#如果缓存超过规定,则删除第一个键值对
kk=list(kv.keys())[0]
v=kv.pop(kk)
kv[x[1]]=x[2]
else:
if kv.get(x[1])==None:
rs.append(-1)
#找不到不用刷新缓存
else:
rs.append(kv[x[1]])
#能找到才刷新缓存
v=kv.pop(x[1])
kv[x[1]]=v

    return rs
全部评论

相关推荐

冷花幽露:大概率是了,京东面试就是这样。我上周一面也是20多分钟,面试官问的很刁钻的问题也答上来了,面完过了几天还是没推进,泡池子,昨天一看挂了。如果一面完第2天没有收到2面邀请,基本上不用抱希望了。如果你的bg是985,面试流程也是和我们一样,20多分钟,唯一区别就是面完他们会很快收到二面邮件,而不像我们泡池子然后挂掉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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