小红书笔试第一题求解!!

//调了半个小时只有55% 没记错的话是当时字节笔试的第一题。当时直接AC,搞不懂哪个用例不符合  public class Main{
    public static void main(String[] args) {


            Scanner sc = new Scanner(System.in);
            int N = Integer.parseInt(sc.nextLine());
            int[][] arr = new int[N][N];
            for (int i = 0; i < N; i++) {

                String[] temp = sc.nextLine().split(" ");
                N = temp.length;
                for (int j = 0; j < N; j++) {
                    arr[i][j] = Integer.parseInt(temp[j]);
                }
            }
            methodImpl(arr,N);

    }


    private static void methodImpl(int[][] arr,int N) {
        int count = 0;
        int[] mark = new int[N];
        for (int i = 0; i < N ; i++) {
            if(mark[i] == 1) continue;
            LinkedList<Integer> temRes = new LinkedList<>();
//            temRes.add(i);
            mark[i]=1;
            for (int j = i+1; j < N; j++) {
                if(arr[i][j]==1 && arr[i][j] == arr[j][i]){
                    temRes.add(j);
                    mark[j]=1;
                }
            }
            while (!temRes.isEmpty()){
                int x = temRes.poll();
                for (int j = x+1; j < N ; j++) {
                    if(arr[x][j] == 1 && arr[x][j] == arr[j][x]){
                        temRes.add(j);
                        mark[j] = 1;
                    }
                }
            }
            count++;
        }
        System.out.println(count);
    }
}

}

#小红书##题解#
全部评论
题目好像不一样,我第一题是判断需要添加多少字符才能成为标准字符串
点赞 回复 分享
发布于 2019-09-14 17:30
第一题小红圈那个?
点赞 回复 分享
发布于 2019-09-14 17:14
大佬,第二题和第三题求思路
点赞 回复 分享
发布于 2019-09-14 17:18
同55%,可能有特殊用例
点赞 回复 分享
发布于 2019-09-14 17:30
LeetCode 547题原题,我是用并查集写的,但是直接在OJ上写,没在本地IDE上写,不过你看完后自己应该会写的
点赞 回复 分享
发布于 2019-09-14 22:54
有收到面试通知吗?
点赞 回复 分享
发布于 2019-09-21 22:05

相关推荐

11-21 11:26
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
10-15 10:57
已编辑
武昌理工学院 FPGA工程师
狠赚笔第一人:老哥学院本没实习还想拿13k学Java狠赚笔呢
点赞 评论 收藏
分享
点赞 2 评论
分享
牛客网
牛客企业服务