华为OD机试统一考试D卷C卷 - 可以组成网络的服务器

题目描述

在一个机房中,服务器的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。

请你统计机房中最大的局域网包含的服务器个数。

输入描述

第一行输入两个正整数,n和m,0<n,m<=100

之后为n*m的二维数组,代表服务器信息

输出描述

最大局域网包含的服务器个数。

用例1

输入

2 2
1 0
1 1

输出

3

[0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网

Java

import java.util.Scanner;

public class Main {
    static int n, m;
    static int[][] server; // 定义一个矩阵,用于存储服务器的状态
    static boolean[][] visited; // 记录每个位置是否已经被访问过

    // 定义一个深度优先搜索函数,用于搜索当前位置的连通块大小
    public static int dfs(int i, int j) {
        // 如果当前位置超出矩阵边界或者当前位置没有服务器,则返回0
        if (i < 0 || i >= n || j < 0 || j >= m || server[i][j] == 0) {
            return 0;
        }

        // 如果当前位置已经被访问过,则返回0
        if (visited[i][j]) {
            return 0;
        }

        // 标记当前位置为已访问
        visited[i][j]

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机试E卷D卷刷题日记 文章被收录于专栏

机试刷题记录

全部评论

相关推荐

双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务