Number of Enclaves LeetCode solution in C++

1
class Solution {
2
public:
3
int numEnclaves(vector<vector<int>> &grid) {
4
for (int i = 0; i < grid.size(); i++) {
5
for (int j = 0; j < grid[0].size(); j++) {
6
if (grid[i][j] == 0) continue;
7
int c = 0;
8
if (grid[i][j] == 1 && (i * j == 0 || i == grid.size() - 1 || j == grid[0].size() - 1)) {
9
queue<vector<int>> q;
10
q.push({i, j});
11
while (!q.empty()) {
12
vector<int> a;
13
a = q.front();
14
q.pop();
15
grid[a[0]][a[1]] = 0;
16
if (a[0] + 1 < grid.size() && grid[a[0] + 1][a[1]] == 1) {
17
q.push({a[0] + 1, a[1]});
18
grid[a[0] + 1][a[1]] = 0;
19
}
20
if (a[1] + 1 < grid[0].size() && grid[a[0]][a[1] + 1] == 1) {
21
q.push({a[0], a[1] + 1});
22
grid[a[0]][a[1] + 1] = 0;
23
}
24
if (a[0] - 1 >= 0 && grid[a[0] - 1][a[1]] == 1) {
25
q.push({a[0] - 1, a[1]});
26
grid[a[0] - 1][a[1]] = 0;
27
}
28
if (a[1] - 1 >= 0 && grid[a[0]][a[1] - 1] == 1) {
29
q.push({a[0], a[1] - 1});
30
grid[a[0]][a[1] - 1] = 0;
31
}
32
}
33
}
34
}
35
}
36
int m = 0;
37
for (int i = 0; i < grid.size(); i++) {
38
for (int j = 0; j < grid[0].size(); j++) {
39
m += grid[i][j];
40
}
41
}
42
return m;
43
}
44
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0