通过率 66% · 提交 531 · 通过 351
这道 OJ 的配套动画
BFS 连通块 · 对应本题的思路、过程和代码
小慕正在维护一个 n*m 的服务器机房,机房布局可以用一个整数矩阵网格来表示,其中 1 表示该单元格有一台服务器,0 表示没有。如果两台服务器位于同一行或者同一列中相邻的位置,那么它们可以组成一个。现在小慕需要统计整个机房中,包含多少台服务器。
这类题属于华为 OD 机考真题方向中「200分 / DFS」方向的高频题型,通常考察对「200分 / DFS」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
第一行输入两个正整数,n和m,0 < n,m <= 100
之后为n*m的二维数组,代表服务器信息
最大局域网包含的服务器个数。
示例 1
输入示例
2 2 1 0 1 1
输出示例
3
[0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
训练营动画视频讲解
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有
相关图解步骤
先看指定步骤补关键知识点,再回到本题完成标准输入输出。
把值为 1 且上下左右相邻的服务器看成一个连通块。逐格扫描;遇到尚未访问的 1,就用 BFS 统计该连通块的节点数,并更新最大值。节点入队时立即标记,避免同一节点被多个邻居重复入队。
每个格子至多入队一次,时间复杂度 O(nm),队列最坏占用 O(nm)。全 0 网格输出 0;单个 1 的连通块大小为 1。