新浪微博2020Java校招笔试题
时间:2019-08-31
本文章向大家介绍新浪微博2020Java校招笔试题,主要包括新浪微博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 }
原文地址:https://www.cnblogs.com/vector11248/p/11439854.html
- 零基础学编程028:面向对象编程OOP
- 如何修改帝国cms文章点击量默认值和成倍增加
- 深入内核:监听器的工作原理与故障诊断分析
- 零基础学编程027:站在巨人的肩膀上
- 群分享:Markdown + CSS 实现微信公众号排版
- Android 蓝牙操作详解
- Linq to xml 操作带命名空间的xml
- Android 操作Sqlite
- 零基础学编程039:生成群文章目录(2)
- Android中的AutoCompleteTextView的使用
- 深度学习以及卷积基础
- Android 控件:使用下拉列表框--Spinner
- 层层升入:SQL极限调优之一次更新操作的N种优化可能
- 零基础学编程037:小数据分析
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释