9.4携程笔试

今晚携程第三题 ; 提示我有非法越界 ; 检查不出来 ; 大牛们看一下

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
public class Main3{
    static Queue<Integer> q=new LinkedList<Integer>();
    static Map<Integer,Integer> map=new HashMap<Integer,Integer>();
    static int max;
    public static void main(String[] args) {
        Scanner scan=new Scanner(System.in);
        max=scan.nextInt();

        String str;
        int key;
        int value;
        while(scan.hasNext()){
            str=scan.next();
            if("p".equals(str)){
                key=scan.nextInt();
                value=scan.nextInt();
                if(map.containsKey(key)){
                    map.put(key, value);
                    continue;
                }
                if(map.size()>=max){
                    int re=duiLie(key);
                    map.remove(re);
                    map.put(key, value);
                }else{
                    q.offer(key);
                    map.put(key, value);
                }

            }else if("g".equals(str)){
                key=scan.nextInt();
                q.remove(key);
                q.offer(key);
                if(map.get(key)==null)
                    System.out.println(-1);
                else
                    System.out.println(map.get(key));

            }    
        }


    }
    public static int  duiLie(int x){
        int re=-1;
        if(q.size()>=max){
         
            re=q.poll();
            q.offer(x);

        }else{
            if(q.contains(x))
                q.remove(x);
            q.offer(x);
        }
        return re;

    }


}
#携程##笔试题目#
全部评论
我这个也只a了87.5,说是越界
点赞 回复 分享
发布于 2018-09-04 20:34
我也是不明原因的非法越界
点赞 回复 分享
发布于 2018-09-04 20:34
非法越界+1,87.5%+1,但是我是C++
点赞 回复 分享
发布于 2018-09-04 20:36
我也是
点赞 回复 分享
发布于 2018-09-04 20:40
考虑***容量为0的情况,就可以100%了
点赞 回复 分享
发布于 2018-09-04 20:45
➕1,整懵逼了都
点赞 回复 分享
发布于 2018-09-04 20:57
加1,百分之87.5
点赞 回复 分享
发布于 2018-09-04 21:01
LRU缓存中的容量n可能小于等于0,判断一下这个就100了
点赞 回复 分享
发布于 2018-09-04 21:07

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
在评审的大师兄很完美:像这种一般就是部门不匹配 转移至其他部门然后挂掉 我就是这样被挂了
点赞 评论 收藏
分享
点赞 7 评论
分享
牛客网
牛客企业服务