欢迎光临散文网 会员登陆 & 注册

华为OD机试-查找单入口空闲区域

2023-02-26 12:05 作者:天生完美  | 我要投稿

题目描述:

给定一个 m xn 的矩阵,由若干字符  和0构成,X表示该处已被占据,0"表示该处空闲,请找到最大的单入口空闲区域.

解释:

空闲区域是由连通的O组成的区域,位于边界的0可以构成入口,单入口空闲区域即有目只有一个位于边界的0作为入口的由连通的'O"组成的区域。

如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

输入描述:

第一行输入为两个数字,第一个数字为行数m,第二个数字列数n,两个数字以空格分隔,1 <= m,n <= 200,剩余各行为矩阵各行元素,元素为'X' 或O,各元素间以空格分隔。

输出描述

若有唯一符合要求的最大单入口空闲区域,输出三个数字,第一个数字为入口行坐标(范围为0-行数-1),第二个数字为入口列坐标(范围为0~列数-1) ,第三个数字为区域大小,三个数字以空格分隔;若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;若没有,输出NULL。

示例1

输入:

4 4

X X X X

X O O X

X O O X

X O X X

输出:

3 15

说明:

存在最大单入口区域,入口行坐标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

输入:

54

X X X X

X O O O

X O O O

X O O X

X X X X

输出:

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

————————————————

版权声明:本文为CSDN博主「MISAYAONE」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://renjie.blog.csdn.net/article/details/128401727


Java 实现:https://renjie.blog.csdn.net/article/details/128401727

Python实现:https://renjie.blog.csdn.net/article/details/128401935

C++ 实现:https://renjie.blog.csdn.net/article/details/128401718

JavaScript实现:https://renjie.blog.csdn.net/article/details/129093222

C语言版本持续更新中


华为OD机试-查找单入口空闲区域的评论 (共 条)

分享到微博请遵守国家法律