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

华为 OD 机试【4 大宝典】再次上新题!

① Python 解华为机试题 :https://dream.blog.csdn.net/article/details/129221789
② C++ 解华为机试题:https://dream.blog.csdn.net/article/details/129472919
③ Java 解华为机试题:https://dream.blog.csdn.net/article/details/129652513
④ C 解华为机试题:https://dream.blog.csdn.net/article/details/129658432

本篇华为机试题解:查找单入口空闲区域

题目

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

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

输入

第一行输入为两个数字,

  1. 第一个数字为行数 m,
  2. 第二个数字列数 n,两个数字以空格分隔, 1≤m,n≤200

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

输出

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

  1. 第一个数字为入口行坐标(范围为 0~行数-1),
  2. 第二个数字为入口列坐标(范围为 0~列数-1),
  3. 第三个数字为区域大小,三个数字以空格分隔;

若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小; 若没有,输出NULL

题解地址 📤

华为 OD 机试

华为 od 机试的题目类型主要有以下几种:

简单的编程题:考察基本的编程语言知识和语法,如变量、循环、条件判断、函数等。 数据结构设计题:考察对常用的数据结构如数组、链表、栈、队列、树、图等的理解和应用,如创建、遍历、查找、排序、修改等。 算法设计题:考察对常用的算法如递归、分治、贪心、动态规划、回溯、搜索等的理解和应用,如求解最优化问题、组合问题、排列问题等。 编程和调试题:考察在给定的代码框架下,能否快速分析问题和解决问题,如修复代码错误、优化代码性能、增加代码功能等。

posted @ 2023-05-18 11:19  梦想橡皮擦  阅读(89)  评论(0编辑  收藏  举报