华为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);
}
}