華為OD機(jī)試-查找單入口空閑區(qū)域
題目描述:
給定一個 m xn 的矩陣,由若干字符? 和0構(gòu)成,X表示該處已被占據(jù),0"表示該處空閑,請找到最大的單入口空閑區(qū)域.
解釋:
空閑區(qū)域是由連通的O組成的區(qū)域,位于邊界的0可以構(gòu)成入口,單入口空閑區(qū)域即有目只有一個位于邊界的0作為入口的由連通的'O"組成的區(qū)域。
如果兩個元素在水平或垂直方向相鄰,則稱它們是“連通”的。
輸入描述:
第一行輸入為兩個數(shù)字,第一個數(shù)字為行數(shù)m,第二個數(shù)字列數(shù)n,兩個數(shù)字以空格分隔,1 <= m,n <= 200,剩余各行為矩陣各行元素,元素為'X' 或O,各元素間以空格分隔。
輸出描述
若有唯一符合要求的最大單入口空閑區(qū)域,輸出三個數(shù)字,第一個數(shù)字為入口行坐標(biāo)(范圍為0-行數(shù)-1),第二個數(shù)字為入口列坐標(biāo)(范圍為0~列數(shù)-1) ,第三個數(shù)字為區(qū)域大小,三個數(shù)字以空格分隔;若有多個符合要求的最大單入口空閑區(qū)域,輸出一個數(shù)字,代表區(qū)域的大小;若沒有,輸出NULL。
示例1
輸入:
4 4
X X X X
X O O X
X O O X
X O X X
輸出:
3 15
說明:
存在最大單入口區(qū)域,入口行坐標(biāo)3,列坐標(biāo)1,區(qū)域大小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
說明:
存在最大單入口區(qū)域,入口行坐標(biāo)3,列坐標(biāo)4,區(qū)域大小1
示例3
輸入:
54
X X X X
X O O O
X O O O
X O O X
X X X X
輸出:
NULL
說明:
不存在最大單入口區(qū)域
示例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的最大單入口區(qū)域,兩個入口橫縱坐標(biāo)分別為1,3和3,3
————————————————
版權(quán)聲明:本文為CSDN博主「MISAYAONE」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://renjie.blog.csdn.net/article/details/128401727
Java 實現(xiàn):https://renjie.blog.csdn.net/article/details/128401727
Python實現(xiàn):https://renjie.blog.csdn.net/article/details/128401935
C++ 實現(xiàn):https://renjie.blog.csdn.net/article/details/128401718
JavaScript實現(xiàn):https://renjie.blog.csdn.net/article/details/129093222
C語言版本持續(xù)更新中