Skip to content

Commit 5ed3906

Browse files
committed
leetcode.com 130. Surrounded Regions
문제 링크: https://leetcode.com/problems/surrounded-regions
1 parent 22f1513 commit 5ed3906

File tree

1 file changed

+49
-0
lines changed
  • leetcode.com 130. Surrounded Regions v2

1 file changed

+49
-0
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
from typing import List
2+
from collections import deque
3+
4+
5+
class Solution:
6+
def solve(self, board: List[List[str]]) -> None:
7+
"""
8+
Do not return anything, modify board in-place instead.
9+
"""
10+
r, c = len(board), len(board[0])
11+
maps = [['O' for _ in range(c + 2)] for _ in range(r + 2)]
12+
13+
for r in range(len(board)):
14+
for c in range(len(board[0])):
15+
maps[r + 1][c + 1] = board[r][c]
16+
17+
self.bfs_Oto1(maps)
18+
19+
for r in range(len(maps)):
20+
for c in range(len(maps[0])):
21+
if maps[r][c] == 'O':
22+
maps[r][c] = 'X'
23+
24+
for r in range(len(maps)):
25+
for c in range(len(maps[0])):
26+
if maps[r][c] == '1':
27+
maps[r][c] = 'O'
28+
29+
for r in range(len(board)):
30+
for c in range(len(board[0])):
31+
board[r][c] = maps[r + 1][c + 1]
32+
33+
def bfs_Oto1(self, maps: List[List[str]]):
34+
drc = [[-1, 0], [0, 1], [1, 0], [0, -1]]
35+
36+
queue = deque([[0, 0]])
37+
maps[0][0] = '1'
38+
39+
while queue:
40+
r, c = queue.popleft()
41+
42+
for dr, dc in drc:
43+
nr, nc = r + dr, c + dc
44+
if 0 <= nr < len(maps) and 0 <= nc < len(maps[0]):
45+
if maps[nr][nc] == 'O':
46+
maps[nr][nc] = '1'
47+
queue.append([nr, nc])
48+
49+

0 commit comments

Comments
 (0)