深度解析 LeetCode 695 题:岛屿的最大面积(Python 实现)
在刷题过程中,我们经常遇到“岛屿类”题目,它们考察的是图的遍历,特别是对二维矩阵的搜索能力。本文将带你深入理解 LeetCode 第 695 题:岛屿的最大面积(Max Area of Island),从题目理解到代码实现,再到优化与对比,全面覆盖。
📌 一、题目描述
给你一个大小为 m x n
的二进制矩阵 grid
。
岛屿由一些相邻的 1
(代表陆地)构成,相邻指的是两个 1
需要在 水平或垂直方向上相邻。你可以假设矩阵的四条边都被 0
(代表水)包围着。
岛屿的面积是岛上值为 1
的单元格数目。
请返回 grid 中最大的岛屿面积。如果没有岛屿,返回面积为 0。
🧠 二、解题分析
本题是一个经典的**“连通块”问题**,本质上可以转化为图的搜索问题。在图中搜索连通的“陆地块”,记录每个岛屿的面积,并返回最大的那个。
关键点分析:
- 每个为
1
的格子都是岛屿的一部分。 - 相邻的定义是:上下左右。
- 可以使用 DFS(深度优先搜索)或 BFS(广度优先搜索)来遍历岛屿。</