新浪微博2020Java校招笔试题
Posted vector11248
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新浪微博2020Java校招笔试题相关的知识,希望对你有一定的参考价值。
第二题是实现一个lru cache , 我想到了linkedHashMap , 但是没有找到合适的api
自己撸了一个,通过了66%
1 package interview; 2 3 import java.util.HashMap; 4 import java.util.LinkedHashMap; 5 import java.util.LinkedList; 6 7 /** 8 * @program: Leetcode 9 * @description: 10 * @create: 2019-08-31 16:32 11 **/ 12 public class Sina2 13 14 int cap; 15 HashMap<Integer,Integer> values = new HashMap<>(); 16 HashMap<Integer,Boolean> exist = new HashMap<>(); 17 LinkedList<Integer> queue = new LinkedList<>(); 18 19 public Sina2(int capacity) 20 this.cap = capacity; 21 22 23 public int get(int key) 24 if (exist.get(key)) 25 int temp = values.get(key); 26 queue.remove((Integer) key); 27 queue.addFirst((Integer) key); 28 System.out.println(temp); 29 return temp; 30 else 31 System.out.println(-1); 32 return -1; 33 34 35 36 37 public void put(int key, int value) 38 if (queue.size() == cap) 39 int kk = queue.get(cap-1); 40 //exist.remove(kk); 41 exist.put(kk,false); 42 values.put(key,value); 43 exist.put(key,true); 44 queue.removeLast(); 45 queue.addFirst(key); 46 else 47 queue.addFirst(key); 48 values.put(key,value); 49 exist.put(key,true); 50 51 52 53 54 public static void main(String[] args) 55 Sina2 sina2 = new Sina2(2); 56 sina2.put(1,1); 57 sina2.put(2,2); 58 sina2.get(1); 59 sina2.put(3,3); 60 sina2.get(2); 61 sina2.put(4,4); 62 sina2.get(1); 63 sina2.get(3); 64 sina2.get(4); 65 66 67
以上是关于新浪微博2020Java校招笔试题的主要内容,如果未能解决你的问题,请参考以下文章