給定乙個二維的矩陣,包含 『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'。
如果兩個元素在水平或垂直方向相鄰,則稱它們是「相連」的。
思路分析:可能大家碰到這道題都是想破腦袋想將中間被包圍的『o』區域找出來,但是這是幾乎不可能的,因為中間可能根本就不存在被包圍的區域,且即使是有包圍的區域也找不出來。所以採取逆向思維,先將與上、下、左、右四個邊界相鄰的所有『o』修改為『t』,然後剩下的『o』就是被包圍的,將剩下的『o』修改為『x』,最後將『t』修改回『o』即可。
class solution
int colsize = board[0].size();
if (colsize == 0)
//將外圍的所有'o'全部修改為't'
for (int row = 0; row < rowsize; ++row)
if (board[row][colsize - 1] == 'o')
} for (int col = 0; col < colsize; ++col)
if (board[rowsize - 1][col] == 'o')
} //將中間剩餘的'o'全部轉換為'x'
for (int row = 1; row < rowsize - 1; ++row)
}} //將外圍的所有't'全部修改為'o'
for (int row = 0; row < rowsize; ++row)
if (board[row][colsize - 1] == 't')
} for (int col = 0; col < colsize; ++col)
if (board[rowsize - 1][col] == 't')
} }//將board[row][col]相鄰且等於targetch的修改為changech
被圍繞的區域
被圍繞的區域 給乙個二維的矩陣,包含 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 解釋 被圍繞的區間不會存...