2023华为OD机试真题Java实现【深度优先搜索/机器人】

题目描述

现有一个机器人,可放置于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,并继续遍历相邻网格点。

参考代码

import 

你可能感兴趣的:(深度优先,蓝桥杯,华为机试,算法)