携程今年的机试题为20道选择+3编程
由于今天最后提交时第三题编程未通过,交卷之后想出来的解法这里记录一下。
import java.util.arraylist; import java.util.list; import java.util.scanner; //携程3 public class lru { public static void main(string[] args) { scanner sc = new scanner(system.in); int size=integer.valueof(sc.nextline()) ; list<integer> list1 = new arraylist<>();//存key list<integer> list2 = new arraylist<>();//存value while(sc.hasnext()){ string line =sc.nextline(); string[] subline=line.split(" "); if(subline[0].equals("p")){ if(list1.contains(integer.valueof(subline[1]))){//如果已经存在,只是将value改变 int k=list1.indexof(integer.valueof(subline[1])); list2.set(k,integer.valueof(subline[2])); }else{//否则放入队列尾 if(list1.size()>=size){ list1.remove(0); list2.remove(0); } list1.add(integer.valueof(subline[1])); list2.add(integer.valueof(subline[2])); } }else{//如果获取值 if(list1.contains(integer.valueof(subline[1]))){ int n =list1.indexof(integer.valueof(subline[1])); system.out.println(list2.get(n)); int key=list1.get(n); int value = list2.get(n); list2.remove(n); list1.remove(n); list1.add(key); list2.add(value); }else{ system.out.println(-1); } } } sc.close(); } }
如对本文有疑问, 点击进行留言回复!!
HashMap、Hashtable、ConcurrentHashMap三者间的异同
解决RecycleView 中Item包含Edittext时,滑动view复用导致数据错乱的问题
多线程、同步工作原理、死锁案例、Lock接口、线程的生命周期的讲解及实现
网友评论