https://www.nowcoder.com/practice/5dfded165916435d9defb053c63f1e84?tpId=295&tqId=2427094&ru=/exam/oj&qru=/ta/format-top101/question-ranking&sourceUrl=%2Fexam%2Foj
public class Solution { Map<Integer,Integer> map; int capacity; public Solution(int capacity) { // write code here this.capacity = capacity; // LinkedHashMap可以保证插入有序 map = new LinkedHashMap<>(capacity); } public int get(int key) { // write code here Integer value = map.get(key); if(value!=null){ if(map.size()>1){ map.remove(key); map.put(key,value); // 存入最后 } }else{ return -1; } return value; } public void set(int key, int value) { // write code here if(map.containsKey(key)){ map.remove(key); } if(map.size()>=capacity){ //这中相当于有一个指针,指向第一个数的前面 keySet() 返回key的集合 //next() 取出下一个数,指针指向下一位 Integer firstKey = map.keySet().iterator().next(); map.remove(firstKey); } map.put(key,value); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决