LeetCode 695 — Max Area of Island

Tercer problema del patrón Graphs. Variante directa de 200-number-of-islands — en lugar de contar islas, devuelve el tamaño de la isla más grande.

Enunciado

Dado un grid 2D de 0/1, devuelve el área (número de celdas) de la isla más grande.


Solución — DFS devolviendo área

class Solution:
    def maxAreaOfIsland(self, grid):
        rows, cols = len(grid), len(grid[0])
        best = 0
 
        def dfs(r, c):
            if (r < 0 or r >= rows or c < 0 or c >= cols or grid[r][c] != 1):
                return 0
            grid[r][c] = 0
            return 1 + dfs(r+1,c) + dfs(r-1,c) + dfs(r,c+1) + dfs(r,c-1)
 
        for r in range(rows):
            for c in range(cols):
                if grid[r][c] == 1:
                    best = max(best, dfs(r, c))
        return best

Veredicto: [OK] canónica. La diferencia con LC 200: el DFS devuelve el área (no es void).


Conexiones

Estado

  • Leído
  • Implementado desde cero
  • Resuelto en LeetCode