OD Linux发行版本

题目描述:
Linux操作系统有多个发行版,distrowatch.com提供了各个发行版的资料。这些发行版互相存在关联,例如Ubuntu基于Debian开发,而Mint又基于Ubuntu开发,那么我们认为MintDebian也存在关联。
发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。
给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnected[i][j] = 0 表示二者不直接相连。
返回最大的发行版集中发行版的数量
输入描述:
第一行输入发行版的总数量N,之后每行表示各发行版间是否直接相关
输出描述:
输出最大的发行版集中发行版的数量
补充说明:
1 <= N <= 200
 收起
示例1
输入:
4
1 1 0 0
1 1 1 0
0 1 1 0
0 0 0 1
输出:
3
说明:
Debian(1)Ubuntu(2)相关,Mint(3)Ubuntu(2)相关,EeulerOS(4)和另外三个都不相关,所以存在两个发行版集,发行版集中发行版的数量分别是31,所以输出3
public class Linux发行版本 {
   
    // n*n的矩阵
    private static int n;
    private static int[][] ints;
    // 用来记录目前版本集中的版号
    private static Set<Integer> set;

    public static void main(String[] args) {
   

        // 输入
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        // 填充初始矩阵ints[][]
        ints = new int[n][n];
        for (int i = 0; i < n; i++){
   
            for (int j = 0 ;j < n; j++){
   
                ints[i][j] = sc.nextInt();
            }
        }

        // 从当前集合开始已经关联的一个最大的linux版本集合
        Set<Integer> temp = new HashSet<Integer>();
        int max = 0;
        for (int i = 0; i < n; i++){
   
            if (!temp.contains(i)){
   // 已经关联过的则不需要再做处理
                set = new HashSet<Integer>();
                handle(i);
                max = Math.max(max, set.size());
                temp.addAll(set);
            }
        }

        System.out.println(max);
    }

    public static void handle(int linux){
   
        for (int i = linux; i < n; i++){
   
            if (!set.contains(i) && ints[linux][i] == 1){
   
                set.add(i);// 添加到已关联的版本
                handle(i);
            }
        }
    }
}

相关推荐

  1. OD Linux发行版本

    2023-12-25 04:44:02       54 阅读
  2. 如何查看Linux的发行版本

    2023-12-25 04:44:02       41 阅读
  3. springcloudalibaba版本发布说明

    2023-12-25 04:44:02       40 阅读
  4. 发布版本自动化记录版本功能方法

    2023-12-25 04:44:02       60 阅读
  5. git修改版本发布时间

    2023-12-25 04:44:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-25 04:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-25 04:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-25 04:44:02       82 阅读
  4. Python语言-面向对象

    2023-12-25 04:44:02       91 阅读

热门阅读

  1. minicube搭建golang容器服务

    2023-12-25 04:44:02       65 阅读
  2. xtu oj 1377 Factorization

    2023-12-25 04:44:02       50 阅读
  3. 面向对象设计与分析40讲(16)静态工厂方法模式

    2023-12-25 04:44:02       62 阅读
  4. 人工智能领域2023年12月15日-12月24日大事件

    2023-12-25 04:44:02       69 阅读
  5. 三分钟让孩子的数学开窍

    2023-12-25 04:44:02       52 阅读
  6. 复杂网络与嵌入式领域结合方向

    2023-12-25 04:44:02       52 阅读
  7. 分页 Python

    2023-12-25 04:44:02       53 阅读
  8. 数据结构和算法笔记3:双指针法(快慢指针)

    2023-12-25 04:44:02       57 阅读
  9. Vue从数组中取出数据并以key-value结构存储

    2023-12-25 04:44:02       59 阅读