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