最近更新的博客
- 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单
- 华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典
- 【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南
- 华为 od 机试,独家整理 已参加机试人员的实战技巧
本篇华为机试题解:查找单入口空闲区域
题目
给定一个 m×n 的矩阵,由若干字符 X
和 O
构成,
X
表示该处已被占据,O
表示该处空闲,请找到最大的单入口空闲区域。
空闲区域是由连通的O
组成的区域,位于边界的O
可以构成入口,
单入口空闲区域即有且只有一个位于边界的O
作为入口的由连通的O
组成的区域。
如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。
输入
第一行输入为两个数字,
- 第一个数字为行数 m,
- 第二个数字列数 n,两个数字以空格分隔,
1≤m,n≤200
剩余各行为矩阵各行元素,元素为X
或 O
,各元素间以空格分隔。
输出
若有唯一符合要求的最大单入口空闲区域,输出三个数字,
- 第一个数字为入口行坐标(范围为 0~行数-1),
- 第二个数字为入口列坐标(范围为 0~列数-1),
- 第三个数字为区域大小,三个数字以空格分隔;
若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;
若没有,输出NULL
。
示例一
输入
4 4
X X X X
X O O X
X O O X
X O X X
输出
3 1 5
说明
存在最大单入口区域,入口行坐标3
,列坐标1
,区域大小5