🏝️

岛屿的最大面积

核心逻辑:
  • 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);
}
你觉得这篇文章怎么样?
YYDS
比心
加油
菜狗
views

Loading Comments...