Вам дана бинарная матричная сетка mxn. Остров представляет собой группу единиц (представляющих землю), соединенных в четырех направлениях (по горизонтали или по вертикали). Можно предположить, что все четыре края сетки окружены водой.

Площадь острова — это количество ячеек со значением 1 на острове.

Возвращает максимальную площадь острова в сетке. Если острова нет, вернуть 0.


class Solution:
    def maxAreaOfIsland(self, grid: List[List[int]]) -> int:
        ROWS, COLS = len(grid), len(grid[0])
        visit = set()

        def dfs(r, c):
            if (
                r < 0
                or r == ROWS
                or c < 0
                or c == COLS
                or grid[r][c] == 0
                or (r, c) in visit
            ):
                return 0

            visit.add((r, c))
            return 1 + dfs(r + 1, c) + dfs(r - 1, c) + dfs(r, c + 1) + dfs(r, c - 1)


        area = 0

        for r in range(ROWS):
            for c in range(COLS):
                area = max(area, dfs(r, c))

        return area

Войти в полноэкранный режим

Выйти из полноэкранного режима