python解法:
可以采用队列的形式:构建一个哈希表,一个暂存数组表示队列
对set:如果缓存未满:将元素加入字典,同时将其加入数组。如果缓存已满,删除队列头部对应的字典,然后将队列头部(最不常用元素)删除然后将新元素添至队列末尾。
对get:直接读取然后按照一样的方法更新缓存

class Solution:
def LRU(self , operators , k ):
A,tmp,B=dict(),[],[]

    def set1(key,value,k):
        if len(A)<k: 
            A[key]=value
            tmp.append(key)
        else: 
            del A[tmp.pop(0)]  
            A[key]=value
            tmp.append(key)

    def get1(key):
        if key in A.keys():
            tmp.remove(key)
            tmp.append(key)
            return A[key]
        else: 
            return -1

    for i in operators:
        if i[0]==1: 
            set1(i[1],i[2],k)
        else:
            B.append(get1(i[1]))
    return B        # write code here