【Java】主要用到LinkedHashMap这个结构,既有队列有序存放的特点,又有map能够存放键值对的特点
public int[] LRU(int[][] operators,int k) { //存放输出结果 List<Integer> list = new ArrayList<Integer>(); //存放key-value键值对 Map<Integer,Integer> map = new LinkedHashMap<Integer,Integer>(); for(int[] arr:operators) { int key = arr[1]; int flag = arr[0]; if(flag==1) {//存 if(map.size()<k) { map.put(key, arr[2]); }else { Iterator<Integer> it = map.keySet().iterator(); map.remove(it.next()); map.put(key, arr[2]); } } else {//取 if(map.containsKey(key)) { int value = map.remove(key); list.add(value); map.put(key, value); } else { list.add(-1); } } } int[] ans = new int[list.size()]; int i=0; for(int num:list) { ans[i++] = num; } return ans; }