Skip to content

Commit c3df2c6

Browse files
authored
Create 1937. Maximum Number of Points with Cost1 (#569)
2 parents 8517c0b + 4b71838 commit c3df2c6

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
class Solution {
2+
public:
3+
int n; //row
4+
int m; //column
5+
bool flag;
6+
void dfs(vector<vector<int>>& grid1, vector<vector<int>>& grid2,int row,int column){
7+
if (row < 0 || row >= n || column < 0 || column >= m || grid2[row][column] == 0) {
8+
return;
9+
}
10+
grid2[row][column] = 0; // mark visited
11+
dfs(grid1, grid2, row - 1, column); // up
12+
dfs(grid1, grid2, row + 1, column); // down
13+
dfs(grid1, grid2, row, column - 1); // left
14+
dfs(grid1, grid2, row, column + 1); // right
15+
if (grid1[row][column] == 0) {
16+
flag = false; // no island found
17+
}
18+
}
19+
int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2) {
20+
n = grid1.size();
21+
m = grid1[0].size();
22+
int countSubIslands = 0;
23+
for (int i = 0; i < n; i++) {
24+
for (int j = 0; j < m; j++) {
25+
if (grid2[i][j] == 1) {
26+
flag = true;
27+
dfs(grid1, grid2, i, j);
28+
countSubIslands += flag;
29+
}
30+
}
31+
}
32+
return countSubIslands;
33+
}
34+
};

0 commit comments

Comments
 (0)