Faaez Razeen

Surrounded Regions

  • 2 min read
  • Graph
  • LC-Medium

3 years ago

Solution

TimeSpaceExplanation
O(mn)O(mn)
def solve(self, board: List[List[str]]) -> None: """ Do not return anything, modify board in-place instead. """ nrows, ncols = len(board), len(board[0]) def dfs(r, c): if board[r][c] == 'O': board[r][c] = 'T' for dr, dc in [(0, 1), (0, -1), (1, 0), (-1, 0)]: nr, nc = r + dr, c + dc if nr >= 0 and nr < nrows and nc >= 0 and nc < ncols and board[nr][nc] == 'O': dfs(nr, nc) for r in range(nrows): dfs(r, 0) dfs(r, ncols - 1) for c in range(ncols): dfs(0, c) dfs(nrows - 1, c) for r in range(nrows): for c in range(ncols): if board[r][c] == 'T': board[r][c] = 'O' elif board[r][c] == 'O': board[r][c] = 'X'