3.08 笔试第二题:分别排序+二分,只过了25的样例,有没有佬帮看看为啥

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int n = in.nextInt();
        int[][] paos = new int[n][2];
        Map> hmx = new HashMap<>();
        Map> hmy = new HashMap<>();

        for (int i = 0; i < n; i++) {
            paos[i][0] = in.nextInt();
            int x = paos[i][0];
            paos[i][1] = in.nextInt();
            int y = paos[i][1];
            if (!hmx.containsKey(x)) {
                hmx.put(x,new ArrayList<>());
            }
            if (!hmy.containsKey(y)) {
                hmy.put(y,new ArrayList<>());
            }
            hmx.get(x).add(y);
            hmy.get(y).add(x);
        }
hmx.forEach((k,v)->{
            Collections.sort(v);
//            System.out.println(v);
        });
hmy.forEach((k,v)->{
            Collections.sort(v);
//            System.out.println(v);
        });
        for (int[] pao : paos) {
            int x = pao[0];
            int y = pao[1];
            int res = 0;
            List tx = hmx.get(x);
            List ty = hmy.get(y);
            int len1 = tx.size();
            int len2 = ty.size();
            int index1 = 0;
            int index2 = 0;
            index1 = bsearch(tx,y);
            index2 = bsearch(ty,x);
if ( index1 - 1 > 0) res++;
if (index1 != -1 &&len1-2-index1 >0)res++;

if(index2-1>0)res++;
if(index2 != -1 &&len2-2-index2>0)res++;
            System.out.println(res);
        }
    }
    private static int bsearch(List list,int num) {
        int len = list.size();
        int left = 0, right = len - 1;

        while (left <= right) {
            int mid = left + (right-left)/2;
            if (list.get(mid) == num) {
                return mid;
            } else if (list.get(mid) < num) {
                left = mid + 1;
            } else {
                right = mid -1;
            }
        }
        return -1;
    }

}
全部评论
没看出啥问题
点赞 回复 分享
发布于 昨天 12:57 江苏

相关推荐

03-08 20:57
吉林大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务