首页 > 【腾讯Java笔试】9.3日的小问号
头像
技术翼
编辑于 2020-09-06 22:11
+ 关注

【腾讯Java笔试】9.3日的小问号

有老哥是第二题数组越界的嘛,找不到问题,是我太菜了吗

下面是代码

import java.util.*;

public class Test11 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        List<List<Integer>> nums = new ArrayList<>();
        int[][] dp = new int[n][n];
        for(int i=0;i<m;i++){
            List<Integer> tmp = new ArrayList<>();
            int x = sc.nextInt();
            for(int j=0;j<x;j++)
                tmp.add(sc.nextInt());
            nums.add(tmp);
        }
        for(int k=0;k<nums.size();k++){
            List<Integer> tmp = nums.get(k);
            for(int i=0;i<tmp.size();i++) {
                for (int j = 0; j < tmp.size(); j++) {
                    if (i == j)
                        continue;
                    dp[tmp.get(i)][tmp.get(j)] = 1;
                }
            }
        }

        Deque<Integer> deque = new ArrayDeque<>();
        deque.addLast(0);
        int res = 0;
        dp[0][0] = 1;
        while(!deque.isEmpty()){
            int num = deque.pollFirst();;

            res++;

            for(int i=0;i<n;i++){
                if(i==num)
                    continue;
                if(dp[num][i]==1){
                    if(dp[i][i]==0){
                        deque.addLast(i);
                        dp[i][i] = 1;
                    }
                }

            }
        }
        System.out.println(res);
    }

}


全部评论

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

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐