我是靠谱客的博主 苗条发夹,最近开发中收集的这篇文章主要介绍华为机试【服务器广播】,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

标题:服务器广播 | 时间限制:1秒 | 内存限制:262144K | 语言限制: 不限
【服务器广播】服务器连接方式包括直接相连,间接连接。A和B直接连接,B和C直接连接,则A和C间接连接。直接连接和间接连接都可以发送广播。
给出一个NN数组,代表N个服务器,matrix[i][j] == 1,则代表i和j直接连接;不等于1时,代表i和j不直接连接。matrix[i][i] == 1,即自己和自己直接连接。
matrix[i][j] == matrix[j][i]。
计算初始需要给几台服务器广播,才可以使每个服务器都收到广播。
输入描述:
输入为N行,每行有N个数字,为0或1,由空格分隔,构成N
N的数组,N的范围为 1<=N<=40
输出描述:
输出一个数字,为需要广播的服务器的数量
示例1:
输入
1 0 0
0 1 0
0 0 1
输出
3

public static void main(String[] args){
  int res[][]={{1,1,0},{0,1,1},{1,0,1}};
        int now[]= new int [res.length];
        for(int i=0;i<now.length;i++){
            now[i]=i;
        }
        for(int i =0;i<res.length;i++){
            for(int j=0;j<res.length;j++){
                if(i!=j&&res[i][j]==1){
                    int a =findFather(i, now);
                    int b =findFather(j, now);
                    if(a!=b){
                        now[a]=b;
                    }
                }
            }
        }
        int count =0;
        for(int i=0;i<now.length;i++){
            if(now[i]==i){
                count++;
            }
        }
        System.out.println(count);
    }
    public static int findFather(int i,int[]now){
        if(now[i]==i)
            return now[i];
        return now[i]=findFather(now[i],now);
    }

最后

以上就是苗条发夹为你收集整理的华为机试【服务器广播】的全部内容,希望文章能够帮你解决华为机试【服务器广播】所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部