Skip to content

Commit da78674

Browse files
committedNov 24, 2017
130. Surrounded Regions
1 parent 0d6fdf0 commit da78674

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
 

‎surrounded-regions.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//Runtime: 19 ms
2+
class Solution {
3+
public:
4+
5+
void DFS(vector<vector<char>>&B, int i, int j)
6+
{
7+
if (i < 0 || j < 0 || i >= B.size() || j >= B[0].size() || B[i][j] != 'O')
8+
return;
9+
10+
B[i][j] = '#';
11+
DFS(B, i + 1, j);
12+
DFS(B, i - 1, j);
13+
DFS(B, i, j + 1);
14+
DFS(B, i, j - 1);
15+
}
16+
17+
void solve(vector<vector<char>>& board) {
18+
int m = board.size();
19+
if (m <= 0) return;
20+
int n = board[0].size();
21+
if (n <= 0) return;
22+
23+
for (int i = 0; i < m; i++)
24+
for (int j = 0; j < n; j++)
25+
if ((i == 0 || i == m - 1 || j == 0 || j == n - 1) && (board[i][j] == 'O'))
26+
DFS(board, i, j);
27+
28+
29+
for (int i = 0; i < m; i++)
30+
for (int j = 0; j < n; j++)
31+
if (board[i][j] == 'O')
32+
board[i][j] = 'X';
33+
34+
for (int i = 0; i < m; i++)
35+
for (int j = 0; j < n; j++)
36+
if (board[i][j] == '#')
37+
board[i][j] = 'O';
38+
39+
}
40+
};

0 commit comments

Comments
 (0)
Please sign in to comment.