目录

华为OD机考真题-Linux-发行版的数量Java

目录

华为OD机考真题 Linux 发行版的数量(Java)

1题目描述

具体题目描述如下:

Linux 操作系统有多个发行版,distrowatch.com 提供了各个发行版的资料。这些发行版互相存在关联,例如 Ubuntu 基于 Debian 开发,而 Mint 又基于 Ubuntu 开发,那么我们认为 Mint 同 Debian 也存在关联。

发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。

给你一个 n x n的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnectedlI = 0 表示二者不直接相连。

返回最大的发行版集中发行版的数量。

2. 输入描述

第一行输入发行版的总数量N,之后每行表示各发行版间是否直接相关。

3. 输出描述

输出最大的发行版集中发行版的数量。

说明

1 <= N <= 200

4. 示例演示

4.1 示例1

输入:

4
1 1 0 0
1 1 1 0
0 1 1 0
0 0 0 1

输出:

3

示例说明:例一表明有四个发行版,横轴i与竖轴j分别对应这四个版本。对角线全为1,因为都属于自己相关自己,所以全为1,我们可以只按行或者列来判断即可。

Java代码

package odTest;

import java.util.Arrays;
import java.util.Scanner;

public class LinuxLunch {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		int num = Integer.parseInt(scanner.nextLine());
		int maxCount = 0;
		for(int i = 0;i<num;i++) {
			int[] input = Arrays.stream(scanner.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
			int count = 0;
			for(int j=0;j<num;j++) {
			   if(input[j] == 1) {
				   count++;
			   }
			}
			if(count>maxCount) {
				maxCount = count;
			}
		}
		System.out.println(maxCount);
	}

}