查找单入口空闲区域

算法刷题笔记 同时被 3 个专栏收录
568篇文章
已下架不支持订阅

题目解析

本题可以使用深度优先搜索来解题。

首先,我们可以遍历矩阵元素,当遍历到“O”时,已该“O”的坐标位置开始向其上、下、左、右方向开始深度优先搜索,每搜索到一个“O”,则该空闲区域数量+1,如果搜索到的“O”的坐标位置处于矩阵第一列,或最后一列,或者第一行,或者最后一行,那么该“O”位置就是空闲区域的入口位置,我们将其缓存到out数组中。

当所有深度优先搜索的分支都搜索完了,则判断out统计的入口数量,

  1. 如果只有1个,则该空闲区域是符合题意得单入口空闲区域,输出入口坐标位置,以及空闲区域数量。
  2. 如果有多个,则该区域不符合要求

另外,我们还需要定义一个check集合来缓存,已经被递归过的"O"位置,避免重复的深度优先搜索。

JavaScript算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

const lines = [];
let n, m;
rl.on("line", (line) => {
  lines.push(line);

  if (lines.length === 1) {
    [
【LeetCode】大厂面试算法真题回忆(33)--查找单入口空闲区域 若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;存在两个大小为3的最大单入口区域,两个入口的横纵坐标分别为1,3和3,3。,两个数字以空格分隔,取值范围是1 <= m,n <= 200。存在最大单入口区域,入口行坐标3,列坐标1,区域大小5。存在最大单入口区域,入口行坐标3,列坐标4,区域大小1。可以构成入口,单入口空闲区域即有且只有一个位于边界的。表示该处空闲,请找到最大的单入口空闲区域。第一行输入为两个数字,第一个数字为行数。组成的区域,位于边界的。,各元素间以空格分隔。 阅读详情

相关推荐

华为OD机试真题:查找单入口空闲区域(E卷、C++)

给定一个 m * n的矩阵,由若干字符’ X’ 和’0’构成,"X表示该处已被占据,'0"表示该处空闲,请找到最大的单入口空闲区域。解释:空闲区域是由连通的’0"组成的区域,位于边界的"0’可以构成入口,单入口空闲区域即有且只有一个位于边界的"0"作为入口的由连通的’O’组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。第一行输入为两个数字,第一个数字为行数m,第二个数字列数n,两个数字以空格分隔,1<=m,n<=200.剩余各行为矩阵各行元素,元素为’X’或’O’,各尤素间以空格分隔。

学习,你不是一个人在战斗 ~ 961302305(QQ,微信) 1072

【华为OD机考真题】- 查找单入口空闲区域(Java)

🔔本文收录于「2025华为OD机试真题(Java版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 1700

【华为机考真题】查找单入口空闲区域,JAVA 题解 | 华为OD机试考生(新抽中题)

参加华为 od 机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;存在两个大小为 3 的最大单入口区域,两个入口横纵坐标分别为。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。若有唯一符合要求的最大单入口空闲区域,输出三个数字,表示该处空闲,请找到最大的单入口空闲区域。单入口空闲区域即有且只有一个位于边界的。存在最大单入口区域,入口行坐标。存在最大单入口区域,入口行坐标。组成的区域,位于边界的。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

查找单入口空闲区域算法问题

说明:存在两个大小为 3 的最大单入口区域,两个入口的横纵坐标分别为 1, 3 和 3, 3。我们要寻找最大的单入口空闲区域。这里的空闲区域是由连通的。说明:存在最大单入口区域,入口的行坐标是 3,列坐标是 1,区域大小为 5。说明:存在最大单入口区域,入口的行坐标是 3,列坐标是 4,区域大小为 1。当两个元素在水平或者垂直方向相邻时,就称它们是“连通”的。单入口空闲区域的定义是有且仅有一个位于边界的。输入的第一行包含两个以空格分隔的数字,第一个数字是矩阵的行数。组成的区域,其中位于矩阵边界的。

m0_62153576的博客 111

【华为OD机试真题】111、 查找单入口空闲区域 | 机试真题+思路参考+代码解析(C++、Java、Py、C语言、JS)

题目描述 >给定一个m * n 的矩阵,由多个 字符 'X' 和 'O' 构成,'X' 表示该处已被占据, 'O'表示该处空闲,请找到最大的单入口空闲区域。 >  解释: 空闲区域是由连通的'O'组成的区域,位于边界的'O'可以构成入口, 单入口空闲区域即有只有一个位于边界的'O'作为入口的由连通的'O’组成的区域。如果两个元素在水平或垂方向相邻,则称它们是“连通”的

KJ.JK 1万+

华为OD机试题 - 查找单入口空闲区域(JavaScript)| 含思路

查找单入口空闲区域 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;存在两个大小为 3 的最大单入口区域,两个入口横纵坐标分别为。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。若有唯一符合要求的最大单入口空闲区域,输出三个数字,表示该处空闲,请找到最大的单入口空闲区域。单入口空闲区域即有且只有一个位于边界的。存在最大单入口区域,入口行坐标。存在最大单入口区域,入口行坐标。组成的区域,位于边界的。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 5116

【华为OD机试考生抽中题】查找单入口空闲区域,用 C 编码,速通

参加华为 od 机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。若有多个符合要求的最大单入口空闲区域,输出一个数字,代表区域的大小;存在两个大小为 3 的最大单入口区域,两个入口横纵坐标分别为。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。若有唯一符合要求的最大单入口空闲区域,输出三个数字,表示该处空闲,请找到最大的单入口空闲区域。单入口空闲区域即有且只有一个位于边界的。存在最大单入口区域,入口行坐标。存在最大单入口区域,入口行坐标。组成的区域,位于边界的。

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 1万+

查找单入口空闲区域 — 华为od机试真题(A卷,Java题解)

给定一个 m * n的矩阵,由若干字符' X' 和'0'构成,"X表示该处已被占据,'0"表示该处空闲,请找到最大的单入口空闲区域。解释:空闲区域是由连通的'0"组成的区域,位于边界的"0'可以构成入口,单入口空闲区域即有且只有一个位于边界的"0"作为入口的由连通的'O'组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

学习,你不是一个人在战斗 ~ 961302305(QQ,微信) 610

华为OD机试 - 查找单入口空闲区域 | 备考思路,刷题要点,答疑 【新解法】

查找单入口空闲区域 题目 给定一个 m×n 的矩阵,由若干字符 X 和 O构成, X表示该处已被占据,O表示该处空闲,请找到最大的单入口空闲区域。 空闲区域是由连通的O组成的区域,位于边界的O可以构成入口, 单入口空闲区域即有且只有一个位于边界的O作为入口的由连通的O组成的区域。 如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。 输入 第一行输入为两个数字, 第一个数字为行数 m, 第二个数字列数 n,两个数字以空格分隔, 1≤m,n≤200 剩余各行为矩阵各行元素,元素为X 或 O,各元素间

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 4203

【100%通过率】华为OD机试真题 Python 实现【查找单入口空闲区域】【2022.11 Q4 新题】

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

MISAYAONE的博客 2万+

【100%通过率】华为OD机试真题 C语言 实现【查找单入口空闲区域】

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

MISAYAONE的博客 1660

【华为机试真题Python】查找单入口空闲区域

三道中等难度题目,总分400分,前两道均为100分,后一道为200分,每道题的时间限制为1S(常规算法解答不出,可以用暴力方法)机考分数是按照题目用例的通过数量的比例算分数 (若最后一道题做不出来,可将边界情况结果等写出来 )机考时长2个半小时,若以冲刺机考最高分为目的,则做题时间分配前两道题40分钟,最后一题70分钟(平时练习可以按照40分钟的时限)机考分数线根据招聘目标院校和非目标院校有不同(不同 华为招聘部门会有差异)创作不易!如果觉得内容对你有帮助,麻烦给个三连关注支持一下我!

154

查找单入口空闲区域 — 华为od机试真题(A卷,Python题解)

给定一个 m * n的矩阵,由若干字符' X' 和'0'构成,"X表示该处已被占据,'0"表示该处空闲,请找到最大的单入口空闲区域。解释:空闲区域是由连通的'0"组成的区域,位于边界的"0'可以构成入口,单入口空闲区域即有且只有一个位于边界的"0"作为入口的由连通的'O'组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

学习,你不是一个人在战斗 ~ 961302305(QQ,微信) 393

华为OD机试真题Python实现【查找单入口空闲区域】真题+解题思路+代码(2022&2023)

给定一个 m×n 的矩阵,由若干字符X和O构成,X表示该处已被占据,O表示该处空闲,请找到最大的单入口空闲区域。空闲区域是由连通的O组成的区域,位于边界的O可以构成入口,单入口空闲区域即有且只有一个位于边界的O作为入口的由连通的O组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

码莎拉蒂 1600

【满分】【华为OD机试真题2023 JAVA&JS】查找单入口空闲区域

查找单入口空闲区域 时间限制:1s空间限制:256MB限定语言:不限 题目描述:给定一个 m x n 的矩阵,由若干字符 'X' 和 'O'构成,'X'表示该处已被占据,'O'表示该处空闲,请找到最大的单入口空闲区域。

qq_34465338的博客 7074

【华为OD机试真题】111、 查找单入口空闲区域 | 机试真题+思路参考+代码解析(C语言、C++、Java、Py、JS)

给定一个m * n 的矩阵,由多个 字符 'X' 和 'O' 构成,'X' 表示该处已被占据, 'O'表示该处空闲,请找到最大的单入口空闲区域。 >  解释: 空闲区域是由连通的'O'组成的区域,位于边界的'O'可以构成入口, 单入口空闲区域即有只有一个位于边界的'O'作为入口的由连通的'O’组成的区域。如果两个元素在水平或垂方向相邻,则称它们是“连通”的

KJ.JK 1262

ISP模块之色彩增强算法--HSV空间Saturation通道调整

色彩增强不同于彩色图像增强,图像增强的一般处理方式为直方图均衡化等,目的是为了增强图像局部以及整体对比度。而色彩增强的目的是为了使的原有的不饱和的色彩信息变得饱和、丰富起来。对应于Photoshop里面的“色相/饱和度”调节选项里面对饱和度的操作。色彩增强的过程,并不改变原有彩色图像的颜色以及亮度信息。     在我的色彩增强算法模块里面,始终只针对色彩饱和度(Saturation)信息做研究,

松间明月 1万+

电子元件及其规格书的查找与理解

本内容收录:在电子开发或维修过程中,查找电子元件及其规格书心得体会,以及元件规格书的理解,系个人多年实战经验的系统梳理。内容着重介绍贴片元件代码反查型号的实用技巧,并以三款典型疑难元件为例,详述其完整查找过程与最终型号确认。

让你爱上电路设计 3956

2025华为od机试真题B卷【版本管理】Python实现

在 软件版本管理中,版本号由点分割的数字组成,例如 1.2.3 和 2.8。现在,你需要编写一个函数,计算两个版本号之间的可用版本号个数。这里的可用版本号指的是所有满足 version1<x<version2的版本号x的个数。若 version1 >=version2 返回0.,

MISAYAONE的博客 636

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能够确定点所属唯一子结点,在那里可以找到该点。 Antonin Guttman在他提出R树的经典论文中给出的R树例子...

白马负金羁 1万+

Qt Quick/QML入门到精通_专栏demo对应文章目录(目前50个左右demo/长期更新)

自定义图标下拉列表框的效果如下所示:自定义三态按钮的效果如下所示:传送门:53.qt quick-自定义三态按钮、自定义图标下拉列表框_诺谦的博客-CSDN博客传送门:59.qt quick-qml调色板(颜色取色器)实现、自定义QQuickStyle样式_诺谦的博客-CSDN博客63.qt quick-QML侧边滑动栏(不需要任何图片资源,支持自定义左右方向和大小)_诺谦的博客-CSDN博客_qt实现好看侧边栏。...

抵抗时间扭曲,坚持做一件有意义的事 2万+

【论文复现】——基于改进FPFH特征提取的点云模板匹配方法

基于改进FPFH特征提取的点云模板匹配方法 [J]. 应用激光, 2024, 44 (04): 196-204.

点云侠的博客 603

基于ESP32 蓝牙游戏手柄设计

介绍使用 ESP32 并通过 BLE 通信的 设计手持游戏手柄,包含原理图与代码

DT程序员的博客 2152

AMBA-CHI协议详解(七)

本节描述该协议包含的支持系统保序需求的机制。

Crazzy_M的博客 1148

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 任务总执行时长
下一篇: 货币单位换算
程序员阿甘
博客等级 码龄10年 3万+粉丝 881原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值