题目:岛屿的最大面积
核心逻辑:
- DFS直接遍历
- 每次遍历需要把已经遍历过的位置置为0
int maxAreaOfIsland(vector<vector<int>>& grid) {
int m = grid.size();
int n = grid[0].size();
int ans = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
ans = max(ans, dfs(grid, i, j, m, n));
}
}
return ans;
}
int dfs(vector<vector<int>>& grid, int i, int j, int m, int n) {
if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == 0)
return 0;
grid[i][j] = 0;
return 1 + dfs(grid, i + 1, j, m, n) + dfs(grid, i - 1, j, m, n) +
dfs(grid, i, j + 1, m, n) + dfs(grid, i, j - 1, m, n);
}





Loading Comments...