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

设计LRU缓存结构

https://www.nowcoder.com/practice/5dfded165916435d9defb053c63f1e84

import java.util.*;


public class Solution {
    class node {
        int key;
        int value;
        public node(int key, int value) {
            this.key = key;
            this.value = value;
        }
    }
    List<node> list=new LinkedList<>();
    public int capacity;

    public Solution(int capacity) {
        // write code here
        
        this.capacity = capacity;
    }

    public int get(int key) {
        
        for (node n : list) {
            if (n.key == key) {
                list.remove(n);
                list.add(n);
                return n.value;
            }
        }
        
        return -1;
    }

    public void set(int key, int value) {
        // write code here
        if(list.size()<this.capacity){
            node n=new node(key,value);
            int index=contains(n.key);
            if(index<0){
                list.add(n);
                
            }else{
                list.set(index,n);
                list.remove(n);
                list.add(n);
                
            } 
        }else{
            list.remove(0);
            node n=new node(key,value);
            list.add(n);
        }
    }
    public int contains(int key){
        int i=0;
        for (node n : list) {
            if (n.value == key) {
                return i;
            }
            i++;
        }
        return -1;
    }
}

/**
 * Your Solution object will be instantiated and called as such:
 * Solution solution = new Solution(capacity);
 * int output = solution.get(key);
 * solution.set(key,value);
 */

全部评论

相关推荐

12-01 12:34
已编辑
广东工业大学 Java
如题,fw🐭🐭,加上准备的太晚,大三上已找不到日常实习,导致连锁反应,下学期的暑期实习找不到好的实习,导致秋招找不到中大厂,现在是中小厂Java还有考公的选择,由于有些中小厂工作强度比肩大厂,钱还少,感觉不如考公如果🐮u们是我现在这种情况,会怎么选?
负债的混子:关注你一段时间了,突然发现你头像名字都改了,想必是这段时间压力很大。关于就业还是考公的选择,就像很多牛友说的:不要美化自己没走过的路。你现在想往互联网发展,发现这条路很难走,然后想往考公发展,但是你没走过考公这条路,所以你不知道这条路的压力如何。你今年大三了,还有时间给你做选择,我希望你能够尽快的决定自己的方向,然后一条路走到黑,而不是在这里徘徊,每个人的道路是不一样的,你无法复刻别人的路,你能做的就是尽力的完善自己。 最后,我想说的是,加油,陌生人!
点赞 评论 收藏
分享
如题如果提出了一个薪资,A不成功,会有可能被取消offer吗
爱打瞌睡的柯基:最想去你们公司 但是别家开的高一些,希望能申请高一点 不管结果如何都谢谢你
点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务