每日刷題 被圍繞的區域

2021-09-28 11:31:59 字數 1060 閱讀 1869

給定乙個二維的矩陣,包含 『x』 和 『o』(字母 o)。

找到所有被 『x』 圍繞的區域,並將這些區域裡所有的 『o』 用 『x』 填充。

例:

x x x x

x o o x

x x o x

x o x x

執行你的函式後,矩陣變為:

x x x x

x x x x

x x x x

x o x x

解釋:被圍繞的區間不會存在於邊界上,換句話說,任何邊界上的 『o』 都不會被填充為 『x』。 任何不在邊界上,或不與邊界上的 『o』 相連的 『o』 最終都會被填充為 『x』。如果兩個元素在水平或垂直方向相鄰,則稱它們是「相連」的。

這道題其實很簡單。

dfs 找到所有的 『o』 即可,之後判斷是否被包圍。

兩個細節:

若某個區域不是被包圍的,如何高效地恢復?棧。

若某個區域不是被包圍的,如何防止重複查詢?集合。

**:

class

solution);

board[i]

[j]=

'x';

return

dfs( board, i -

1, j)

&&dfs

( board, i +

1, j)

&&dfs

( board, i, j -1)

&&dfs

( board, i, j +1)

;}void

solve

(vectorchar

>>

& board)

)== hadgone.

end()&&

!dfs

( board, i, j)))

; record.

pop();

}}while

(!record.

empty()

) record.

pop();

}}};

被圍繞的區域

被圍繞的區域 給乙個二維的矩陣,包含 x 和 o 找到所有被 x 圍繞的區域,並用 x 填充滿。樣例給出二維矩陣 x x x x x o o x x x o x x o x x把被 x 圍繞的區域填充之後變為 x x x x x x x x x x x x x o x x class unionfi...

被圍繞的區域

給定乙個二維的矩陣,包含 x 和 o 字母 o 找到所有被 x 圍繞的區域,並將這些區域裡所有的 o 用 x 填充。示例 x x x x x o o x x x o x x o x x執行你的函式後,矩陣變為 x x x x x x x x x x x x x o x x解釋 被圍繞的區間不會存在於...

被圍繞的區域

給定乙個二維的矩陣,包含 x 和 o 字母 o 找到所有被 x 圍繞的區域,並將這些區域裡所有的 o 用 x 填充。示例 x x x x x o o x x x o x x o x x 執行你的函式後,矩陣變為 x x x x x x x x x x x x x o x x 解釋 被圍繞的區間不會存...