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;

    }


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

相关推荐

06-23 11:43
门头沟学院 Java
allin校招的烤冷面很爱看电影:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
评论
点赞
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务