题目描述
现有一个机器人,可放置于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
本文介绍了华为在线测评中的一道机器人题目,机器人在M×N的网格中移动,当相邻网格数字差值的绝对值小于等于1时,可以移动。问题求解机器人能活动的最大范围的网格点数目。输入包括网格的行数、列数和每个网格的数值,输出为最大活动区域的网格点数。解题思路采用深度优先搜索,遍历并记录已访问的网格,若相邻网格符合条件则继续搜索。
订阅专栏 解锁全文
7377

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



