AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3500. 机器人活动区域

中等通过率 75% · 提交 627 · 通过 472
BFSDFS图论矩阵DFS/BFS

小慕有一个 M × N 的网格项目,每个网格包含一个非负整数编号。当的数字编号小于等于 1 时,小慕的机器人可以在网格间移动。小慕想知道机器人可活动的最大范围对应的网格点数目。 说明: 1. 网格左上角坐标为 (0,0),右下角坐标为 (m−1, n−1) 2. 机器人只能在相邻网格间上下左右移动

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 第 1 行输入为 M 和 N ,M 表示网格的行数 N 表示网格的列数。 </p> <p> 之后 M 行表示网格数值,每行 N 个数值(数值大小用 k 表示),数值间用单个空格分隔,行首行尾无多余空格。 </p> <p> M、N、k 均为整数,且 1 ≤ M, N ≤ 150 ,0 ≤ k ≤ 50 </p>

输出描述

<p> 输出 1 行,包含 1 个数字,表示最大活动区域的网格点数目。 </p> <p> <br /> </p> <p> <img src="http://oj.algomooc.com:443/upload/oj.algomooc.com/image/20230701/20230701220432_91494.png" alt="" /> </p>

示例

示例 1

输入

4 4
1 2 5 2
2 4 4 5
3 5 7 1
4 6 2 4

输出

6

说明:相邻网格差值绝对值都小于等于 1 ,且为最大区域,对应网格点数目为 6

示例 2

输入

2 3
1 3 5
4 1 3

输出

1

说明:任意两个相邻网格的差值绝对值都大于 1 ,机器人不能在网格间移动,只能在单个网格内活动。对应网格点数目为 1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
1 2 5 2 2 4 4 5 3 5 7 1 4 6 2 4 最大区域(6个格子) 相邻差值 ≤ 1 可移动 移动条件 |当前值 - 邻居值| ≤ 1 只能上下左右移动 示例 左上角 1 可走到 2 |1-2|=1 ≤ 1 但 5 不能走到 2 |5-2|=3 > 1
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「机器人活动区域」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。