首页 > 华为机试915-第一题代码
头像
aloha婵
发布于 2021-09-15 21:20
+ 关注

华为机试915-第一题代码

第一题用了一个比较笨拙的方法,应该能通过部分案例,但是通过率为0,有大佬帮忙看看是什么问题吗?
    public static void main(String[] args) { new Scanner(System.in);

        String gw = sc.nextLine();

        String xdq = sc.nextLine();

        String[] scArray = gw.split(" ");

        String[] xdqArray = xdq.split(" ");

        List<Integer> gwList = new ArrayList<>(); // //  工位

        for(String s : scArray) {

            gwList.add(Integer.parseInt(s));

        }

        List<Integer> xdqList = new ArrayList<>(); // // 消毒器

        for(String s : xdqArray) {

            xdqList.add(Integer.parseInt(s));

        }

        int gwNum = gwList.size();

        int xdqNum = xdqList.size();

        int minRange = Integer.MAX_VALUE; // 最小工作半径

        int range = 0;

        Collections.sort(gwList);

        Collections.sort(xdqList);        

        int[] leftBorders = new int[xdqNum];

        int[] rightBorders = new int[xdqNum];

        for(int i = 0; i < xdqNum; ++i){

            if(xdqList.get(i) < gwList.get(0)) {

                leftBorders[i] = 0;

            }else {

                leftBorders[i] = gwList.get(0);

            }

        }

        for(int i = 0; i < xdqNum; ++i){

            if(xdqList.get(i) > gwList.get(gwNum-1)) {

                rightBorders[i] = 0;

            }else {

                rightBorders[i] = gwList.get(gwNum-1);

            }

        }

        int xdqPosition;

        int leftBorder ;

        int rightBorder;

        int leftRange ;

        int rightRange ; 

        int xdqRange;

        for(int i = 0; i < xdqNum; ++i){

             xdqPosition = xdqList.get(i);

             leftBorder = leftBorders[i];

             rightBorder = rightBorders[i];

             leftRange = Math.abs(xdqPosition - leftBorder);

             rightRange = Math.abs(rightBorder - xdqPosition); 

             xdqRange = Math.max(leftRange, rightRange);

             minRange = Math.min(minRange, xdqRange);

        }

        

        System.out.println(minRange);

    }

全部评论

(5) 回帖
加载中...
话题 回帖