Skip to content

Commit 15a212c

Browse files
committed
Time: 604 ms (16.65%), Space: 115.6 MB (26.66%) - LeetHub
1 parent 19280e2 commit 15a212c

File tree

1 file changed

+11
-33
lines changed

1 file changed

+11
-33
lines changed

1905-count-sub-islands/1905-count-sub-islands.cpp

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,45 +5,23 @@ class Solution {
55
int n = grid1.size();
66
int m = grid1[0].size();
77

8-
vector<vector<bool>> visited(n, vector<bool>(m, false)), visited2(n, vector<bool>(m, false));
8+
vector<vector<bool>> visited(n, vector<bool>(m, false));
99

10-
function<void(int, int)> dfs = [&](int i, int j)
11-
{
12-
if(i < 0 or j < 0 or i >= n or j >= m or visited[i][j] or !grid1[i][j])
13-
return;
14-
15-
visited[i][j] = 1;
16-
17-
dfs(i-1, j);
18-
dfs(i, j+1);
19-
dfs(i+1, j);
20-
dfs(i, j-1);
21-
};
22-
23-
for(int i = 0; i < n; ++i)
24-
{
25-
for(int j = 0; j < m; ++j)
26-
{
27-
if(!visited[i][j] and grid1[i][j])
28-
dfs(i, j);
29-
}
30-
}
31-
32-
function<bool(int, int)> dfs2 = [&](int i, int j) -> bool{
33-
if(i < 0 or j < 0 or i >= n or j >= m or visited2[i][j] or !grid2[i][j])
10+
function<bool(int, int)> dfs = [&](int i, int j) -> bool{
11+
if(i < 0 or j < 0 or i >= n or j >= m or visited[i][j] or !grid2[i][j])
3412
return true;
3513

36-
if(!visited[i][j]) return false;
14+
if(!grid1[i][j]) return false;
3715

38-
visited2[i][j] = true;
16+
visited[i][j] = true;
3917

4018
bool up, left, right, down;
4119
up = left = right = down = true;
4220

43-
up = dfs2(i-1, j);
44-
left = dfs2(i, j-1);
45-
down = dfs2(i+1, j);
46-
right = dfs2(i, j+1);
21+
up = dfs(i-1, j);
22+
left = dfs(i, j-1);
23+
down = dfs(i+1, j);
24+
right = dfs(i, j+1);
4725

4826
return up and left and down and right;
4927
};
@@ -54,9 +32,9 @@ class Solution {
5432
{
5533
for(int j = 0; j < m; ++j)
5634
{
57-
if(!visited2[i][j] and grid2[i][j])
35+
if(!visited[i][j] and grid2[i][j])
5836
{
59-
if(dfs2(i, j))
37+
if(dfs(i, j))
6038
{
6139
++subIsland;
6240
}

0 commit comments

Comments
 (0)