华为OD机考双机位C卷 - 查找单入口空闲区域 (Java & Python & JS & GO & C++ & C)

查找单入口空闲区域

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

给定一个 m x n 的矩阵,由若干字符 ‘X’ 和 ‘O’构成,’X’表示该处已被占据,’O’表示该处空闲,请找到最大的单入口空闲区域。

解释:

空闲区域是由连通的’O’组成的区域,位于边界的’O’可以构成入口,

单入口空闲区域即有且只有一个位于边界的’O’作为入口的由连通的’O’组成的区域。
如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

输入描述

第一行输入为两个数字,第一个数字为行数m,第二个数字为列数n,两个数字以空格分隔,1<=m,n<=200。

剩余各行为矩阵各行元素,元素为‘X’或‘O’,各元素间以空格分隔。

输出描述

若有唯一符合要求的最大单入口空闲区域,输出三个数字

  • 第一个数字为入口行坐标(0~m-1)

  • 第二个数字为入口列坐标(0~n-1)

  • 第三个数字为区域大小

三个数字以空格分隔;

若有多个符合要求,则输出区域大小最大的,若多个符合要求的单入口区域的区域大小相同,则此时只需要输出区域大小,不需要输出入口坐标。

若没有,输出NULL。

示例1

输入

4 4
X X X X
X O O X
X O O X
X O X X

输出

3 1 5

说明

存在最大单入口区域,入口坐标(3,1),区域大小5

示例2

输入

4 5
X X X X X
O O O O X
X O O O X
X O X X O

输出

3 4 1

说明

存在最大单入口区域,入口坐标(3,4),区域大小1

示例3

输入

5 4
X X X X
X O O O
X O O O
X O O X
X X X X

输出

NULL

说明

NULL

示例4

输入

5 4
X X X X
X O O O
X X X X
X O O O
X X X X

输出

3

说明

存在两个大小为3的最大单入口区域,两个入口坐标分别为(1,3)、(3,3)

解题思路

posted @ 2026-03-15 12:28  华为od算法大师  阅读(3)  评论(0)    收藏  举报