题目描述
现有一个机器人,可放置于M×N的网格中任意位置,每个网格包含一个非负整数编号,当相邻网格的数字编号差值的绝对值小于等于1时,机器人可以在网格间移动。
问题:求机器人可活动的最大范围对应的网格点数目。说明:网格左上角坐标为(0,0),右下角坐标为(m−1,n−1)。机器人只能在相邻网格间上下左右移动
输入描述
第1行输入为M和N,M表示网格的行数N表示网格的列数之后M行表示网格数值,每行N个数值(数值大小用k表示),数值间用单个空格分隔,行首行尾无多余空格M、N、k均为整数,且1≤M,N≤150,0≤k≤50
输出描述
输出1行,包含1个数字,表示最大活动区域的网格点数目行首行尾无多余空格
输入
4 4
1 2 5 2
2 4 4 5
3 5 7 1
4 6 2 4
输出
6
解题思路
对于每个网格点,执行深度优先搜索。使用visited数组来记录已经访问过的网格点。对于当前网格点,遍历其上下左右四个相邻网格点,如果相邻网格点未被访问且数值差值的绝对值小于等于1,则将count加1,并继续遍历相邻网格点。
参考代码
impo
本文介绍了一道华为在线开发者(OD)机试题目,涉及一个机器人在M×N网格中移动的问题。机器人可以移动到相邻编号差值不超过1的网格,任务是找出机器人可活动的最大范围及对应的网格点数目。解题策略采用深度优先搜索,通过数组记录已访问的网格点,遍历并更新最大活动区域的计数。
订阅专栏 解锁全文
7378

被折叠的 条评论
为什么被折叠?



