分享完全多部图-非常简单的思路

刚才第一次发帖,我忘记题目了,现在修改了一下。。。哈哈哈


题目:同一个集合里面不能连通,不同集合里面必须连通

基本思路:如果1和3. 4.  5不连通,那么3  4  5之间一定不能连通!否则,不是完全多部图

我们只需对每个节点进行上述判断就可以了


public class Main {
     public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int t = scanner.nextInt();
for(int i=0;i<t;i ) {
int n = scanner.nextInt();
int m = scanner.nextInt();
int[][] graph = new int[n 1][n 1];
for(int j=0;j<m;j ) {
int A = scanner.nextInt();
int B = scanner.nextInt();
graph[A][B] = 1;
graph[B][A] = 1;
}
int k = 0;
for( k=1;k<=n;k ) {
List<Integer> temp = new ArrayList<>();
for(int h=1;h<=n;h ) {
if(k==h) continue;
if(graph[k][h]!=1) temp.add(h);
}
if(isValid(graph,temp)==false) {
System.out.println("No");
break;
}
}
if(k>n) System.out.println("Yes");
}
}
     private static boolean isValid(int[][] graph,List<Integer> list) {
        for(int i=0;i<list.size();i ) {
           for(int j=i 1;j<list.size();j ) {
              if(graph[list.get(i)][list.get(j)]==1) return false;
           }
        }
        return true;
     }
}
#京东##Java工程师#
全部评论
第一次发帖的时候,说反了😂浪费大家时间了。。。
点赞 回复 分享
发布于 2018-09-10 09:46
感觉 JD 的编程题时间复杂度没有太大要求
点赞 回复 分享
发布于 2018-09-10 09:48
对于你的基本假设,实际上应该是1和3,4,5不联通,那么与1连通的集合等于分别与345联通的集合
点赞 回复 分享
发布于 2018-09-10 10:38

相关推荐

accaacc:2到4k,不是2k到4k,所以年薪是30块
点赞 评论 收藏
分享
shtdbb_:还不错,没有让你做了笔试再挂你
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务