T130 被圍繞的區域

2021-10-08 01:46:40 字數 719 閱讀 5263

注意這題的"環繞"指的是:任何邊界上的 『o』 都不會被填充為 『x』。 任何不在邊界上,或不與邊界上的 『o』 相連的 『o』 最終都會被填充為 『x』,或者說與邊界上的o及與邊界o相連的o以及再與邊界上的o相連的o相連的(在一條直線上的)o不會變為x

思想:

並查集思想:遍歷board,把與邊界上的o及與邊界o相連的o以及再與邊界上的o相連的o相連的(在一條直線上的)o給變成n(這裡可以用dfs,以邊界上的o為起點,感染與它直接相連的o,將它們都變成n,這就是並查集的體現?)

然後再去遍歷board,把所有的n恢復成o,把所有o給變成x

class solution 

board[x][y] = 'n';

dfs(board,x-1,y);

dfs(board,x+1,y);

dfs(board,x,y-1);

dfs(board,x,y+1);

}public void solve(char board)

for(int x=0;x

for(int x=0;x

}} }}

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 解釋 被圍繞的區間...

130 被圍繞的區域

1.所有包含o的邊界上的的格仔,以及它們的鄰居o都不會被包圍,暫時地將這些o標記,通過深度優先搜尋查詢這些o,最後將所有未被標記的o轉換為x class solution def solve self,board list list str none do not return anything,m...

130 被圍繞的區域 DFS

難度 中等 題目描述 解題思路 這道題的思路有點巧妙 y 因為邊界上的o和它相鄰的o一定不會被標記,所以可以用逆向思維,先把所有邊界上的o和和它相鄰的o都標記出來,最後把標記還原,沒標記過的變成x 130.被圍繞的區域 2020 7 18 public void solve char board i...