leetcode130 被圍繞的區域

2021-10-01 06:16:25 字數 1394 閱讀 6257

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

和leetcode200.島嶼數量思路相似

class solution(object):

def dfs(self,i,j,m,n,board):

if i >= 0 and i < m and j >= 0 and j < n and board[i][j] == "o":

board[i][j] = "#"

self.dfs(i-1,j,m,n,board)

self.dfs(i+1,j,m,n,board)

self.dfs(i,j+1,m,n,board)

self.dfs(i,j-1,m,n,board)

def solve(self, board):

""":type board: list[list[str]]

:rtype: none do not return anything, modify board in-place instead.

"""if not board or not board[0]:

return board

m = len(board)

n = len(board[0])

for i in range(m):

for j in range(n):

if (i == 0 or i == m-1 or j == 0 or j == n-1) and board[i][j] == "o":

self.dfs(i,j,m,n,board)

for i in range(m):

for j in range(n):

if board[i][j] == "#":

board[i][j] = "o"

elif board[i][j] == "o":

board[i][j] = "x"

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