Leetcode 130 被圍繞的區域 C

2021-10-07 08:31:30 字數 1219 閱讀 7521

給定乙個二維的矩陣,包含 『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』。如果兩個元素在水平或垂直方向相鄰,則稱它們是「相連」的。

bfs或dfs

本題採用bfs,先把不被『x』包圍『o』找到,即從四周的『o』開始廣搜『o』,並用乙個陣列進行標記,表明它不被包圍。然後我們再遍歷矩陣,將包圍的『o』改為『x』。詳細過程見**

class

place};

class

solution}}

void

findnot

(vectorchar

>>

& board,vectorint>>

& use,

int n,

int m)

if(board[i]

[m-1]==

'o')

}for

(int i=

0; i(board[n-1]

[i]==

'o')

}while

(!q.

empty()

)if(p.x1&& board[p.x+1]

[p.y]

=='o'

&&!use[p.x+1]

[p.y])if

(p.y>

0&& board[p.x]

[p.y-1]

=='o'

&&!use[p.x]

[p.y-1]

)if(p.y1&& board[p.x]

[p.y+1]

=='o'

&&!use[p.x]

[p.y+1]

)}}void

solve

(vectorchar

>>

& board)

};

LeetCode130 被圍繞的區域

給定乙個二維的矩陣,包含 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解釋 被圍繞的區間不會存在於...

Leetcode130 被圍繞的區域

給定乙個二維的矩陣,包含 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解釋 被圍繞的區間不會存在於...

leetcode 130被圍繞的區域

給定乙個二維的矩陣,包含 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解釋 被圍繞的區間不會存在於...