leetcode 130 被圍繞的區域

2021-10-03 23:00:39 字數 852 閱讀 8275

給定乙個二維的矩陣,包含 '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可以解決。

這道題目難就難在邊界的'o'怎麼解決,死來想去也沒有什麼特別好的方法。

後來靈機一動,其實就是把圖四周的'o'進行dfs就行了,給他做一下特殊的標記,然後把圖中的'o'替換為'x',再把標記替換為'o'就行了。

char b;

public void solve(char board) }}

// 將剩下的o變為x,b變為o

for (int i = 0; i =b.length || j<0 || j>=b[i].length || b[i][j] == 'x' || b[i][j] == 'b')

return ;

int dx = ;

int dy = ;

b[i][j] = 'b'; // 標記為b

for (int k = 0; k }

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解釋 被圍繞的區間不會存在於...